1--TEST-- 2Test open_basedir configuration 3--SKIPIF-- 4<?php 5if (substr(PHP_OS, 0, 3) == 'WIN') { 6 die('skip no symlinks on Windows'); 7} 8?> 9--INI-- 10open_basedir=. 11--FILE-- 12<?php 13require_once "open_basedir.inc"; 14$initdir = getcwd(); 15test_open_basedir_before("symlink"); 16 17$target = ($initdir."/test/ok/ok.txt"); 18var_dump(symlink($target, "../bad/symlink.txt")); 19var_dump(symlink($target, "../symlink.txt")); 20var_dump(symlink($target, "../bad/./symlink.txt")); 21var_dump(symlink($target, "./.././symlink.txt")); 22 23$symlink = ($initdir."/test/ok/symlink.txt"); 24var_dump(symlink("../bad/bad.txt", $symlink)); 25var_dump(symlink("../bad", $symlink)); 26var_dump(symlink("../bad/./bad.txt", $symlink)); 27var_dump(symlink("../bad/bad.txt", $symlink)); 28var_dump(symlink("./.././bad", $symlink)); 29 30$target = ($initdir."/test/ok/ok.txt"); 31 32var_dump(symlink($target, $symlink)); 33var_dump(unlink($symlink)); 34 35var_dump(mkdir("ok2")); 36$symlink = ($initdir."/test/ok/ok2/ok.txt"); 37var_dump(symlink("../ok.txt", $symlink)); // $target == (dirname($symlink)."/".$target) == ($initdir."/test/ok/ok.txt"); 38var_dump(unlink($symlink)); 39 40test_open_basedir_after("symlink"); 41?> 42--CLEAN-- 43<?php 44require_once "open_basedir.inc"; 45delete_directories(); 46?> 47--EXPECTF-- 48*** Testing open_basedir configuration [symlink] *** 49bool(true) 50bool(true) 51bool(true) 52bool(true) 53bool(true) 54 55Warning: symlink(): open_basedir restriction in effect. File(%s/test/bad/symlink.txt) is not within the allowed path(s): (.) in %s on line %d 56bool(false) 57 58Warning: symlink(): open_basedir restriction in effect. File(%s/test/symlink.txt) is not within the allowed path(s): (.) in %s on line %d 59bool(false) 60 61Warning: symlink(): open_basedir restriction in effect. File(%s/test/bad/symlink.txt) is not within the allowed path(s): (.) in %s on line %d 62bool(false) 63 64Warning: symlink(): open_basedir restriction in effect. File(%s/test/symlink.txt) is not within the allowed path(s): (.) in %s on line %d 65bool(false) 66 67Warning: symlink(): open_basedir restriction in effect. File(%s/test/bad/bad.txt) is not within the allowed path(s): (.) in %s on line %d 68bool(false) 69 70Warning: symlink(): open_basedir restriction in effect. File(%s/test/bad) is not within the allowed path(s): (.) in %s on line %d 71bool(false) 72 73Warning: symlink(): open_basedir restriction in effect. File(%s/test/bad/bad.txt) is not within the allowed path(s): (.) in %s on line %d 74bool(false) 75 76Warning: symlink(): open_basedir restriction in effect. File(%s/test/bad/bad.txt) is not within the allowed path(s): (.) in %s on line %d 77bool(false) 78 79Warning: symlink(): open_basedir restriction in effect. File(%s/test/bad) is not within the allowed path(s): (.) in %s on line %d 80bool(false) 81bool(true) 82bool(true) 83bool(true) 84bool(true) 85bool(true) 86*** Finished testing open_basedir configuration [symlink] *** 87 88