diff options
Diffstat (limited to 'ext/standard/tests/file/open_basedir.inc')
| -rw-r--r-- | ext/standard/tests/file/open_basedir.inc | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/ext/standard/tests/file/open_basedir.inc b/ext/standard/tests/file/open_basedir.inc deleted file mode 100644 index 7fd0afc8b..000000000 --- a/ext/standard/tests/file/open_basedir.inc +++ /dev/null @@ -1,133 +0,0 @@ -<?php - -// This file contains helper functions for testing open_basedir configuration -// Care must be taken with where the directories are created because different -// SAPIs set the working directory differently. So simply creating a directory -// relative to the current working directory like this: mkdir("blah") might -// actually create it in several different places depending on the SAPI..! -// -// Note also depending on the version of php being tested, so the open_basedir -// configuration may or may not be changeable from a script (PHP_INI_SYSTEM). -// -// For this reason we set the open_basedir to . (current directory) and then -// move around to various directories for testing using chdir(). This is NOT -// recommended for production use as . bypasses all semblence of security..! -// -// Although safe mode has been removed in php 6.0, open_basedir is still valid. -// See http://www.php.net/features.safe-mode for more information - -function recursive_delete_directory($directory) { - - // Remove any trailing slash first - if (substr($directory, -1) == '/') { - $directory = substr($directory, 0, -1); - } - - // Make sure the directory is valid - if (is_dir($directory) == FALSE) { - return FALSE; - } - - // Check we can access the directory - if (is_readable($directory) == FALSE) { - return FALSE; - } - - $handle = opendir($directory); - - // Scan through the directory contents - while (FALSE !== ($item = readdir($handle))) { - if ($item != '.') { - if ($item != '..') { - $path = ($directory.'/'.$item); - if (is_dir($path) == TRUE) { - recursive_delete_directory($path); - } else { - @chmod($path, 0777); - unlink($path); - } - } - } - } - - closedir($handle); - @chmod($directory, 0777); - rmdir($directory); - - return TRUE; -} - -function create_directories() { - delete_directories(); - $directory = dirname(__FILE__); - - var_dump(mkdir($directory."/test")); - var_dump(mkdir($directory."/test/ok")); - var_dump(mkdir($directory."/test/bad")); - file_put_contents($directory."/test/ok/ok.txt", "Hello World!"); - file_put_contents($directory."/test/bad/bad.txt", "Hello World!"); -} - -function delete_directories() { - $directory = (dirname(__FILE__)."/test"); - recursive_delete_directory($directory); -} - -function test_open_basedir_error($function) { - var_dump($function("../bad")); - var_dump($function("../bad/bad.txt")); - var_dump($function("..")); - var_dump($function("../")); - var_dump($function("/")); - var_dump($function("../bad/.")); - $directory = dirname(__FILE__); - var_dump($function($directory."/test/bad/bad.txt")); - var_dump($function($directory."/test/bad/../bad/bad.txt")); -} - -function test_open_basedir_before($function, $change = TRUE) { - echo "*** Testing open_basedir configuration [$function] ***\n"; - $directory = dirname(__FILE__); - var_dump(chdir($directory)); - create_directories(); - - // Optionally change directory - if ($change == TRUE) { - var_dump(chdir($directory."/test/ok")); - } -} - -// Delete directories using a --CLEAN-- section! -function test_open_basedir_after($function) { - echo "*** Finished testing open_basedir configuration [$function] ***\n"; -} - -// This is used by functions that return an array on success -function test_open_basedir_array($function) { - test_open_basedir_before($function); - test_open_basedir_error($function); - var_dump(is_array($function("./../."))); - var_dump(is_array($function("../ok"))); - var_dump(is_array($function("ok.txt"))); - var_dump(is_array($function("../ok/ok.txt"))); - $directory = dirname(__FILE__); - var_dump(is_array($function($directory."/test/ok/ok.txt"))); - var_dump(is_array($function($directory."/test/ok/../ok/ok.txt"))); - test_open_basedir_after($function); -} - -function test_open_basedir($function) { - test_open_basedir_before($function); - test_open_basedir_error($function); - var_dump($function("./../.")); - var_dump($function("../ok")); - var_dump($function("ok.txt")); - var_dump($function("../ok/ok.txt")); - $directory = dirname(__FILE__); - var_dump($function($directory."/test/ok/ok.txt")); - var_dump($function($directory."/test/ok/../ok/ok.txt")); - test_open_basedir_after($function); -} - -?> - |
