File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / security / open_basedir_symlink.phpt
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:48:06 2012 UTC (12 years, 5 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, v5_3_10, HEAD
php

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>