Bug #44901 [Ver->Csd]: open_basedir as prefix complains on attempts to access non-existant files
| From: | cmb@php.net | Date: | Thu, 04 Jun 2015 14:50:53 +0000 |
| Subject: | Bug #44901 [Ver->Csd]: open_basedir as prefix complains on attempts to access non-existant files | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-193118@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=44901&edit=1
ID: 44901
Updated by: cmb@php.net
Reported by: jake at yahoo-inc dot com
Summary: open_basedir as prefix complains on attempts to
access non-existant files
-Status: Verified
+Status: Closed
Type: Bug
Package: Safe Mode/open_basedir
Operating System: *
PHP Version: 5.*, 6CVS (2009-03-16)
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
This ticket is obsolete, because the open_basedir restriction
can't be used as prefix as of PHP 5.2.16 and 5.3.4[1].
[1] <http://php.net/manual/en/ini.core.php#ini.open-basedir>
Previous Comments:
------------------------------------------------------------------------
[2013-12-24 23:50:29] aaron dot hamid at gmail dot com
Cannot reproduce on PHP-5.6 branch.
------------------------------------------------------------------------
[2013-12-24 23:40:04] aaron dot hamid at gmail dot com
Seems related to https://bugs.php.net/bug.php?id=41518 (which is
closed) as well
------------------------------------------------------------------------
[2013-04-03 20:16:23] mail+php at requinix dot net
Related To: Bug #64573
------------------------------------------------------------------------
[2011-05-25 18:07:24] softwareelves at gmail dot com
This bug doesn't seem to exist in 5.2.x.
I found it's not just a trailing slash but anything after an existing file path.
I found an easy way to show this bug:
error_reporting( E_ALL | E_STRICT );
var_dump( file_exists( __FILE__ ) );
var_dump( file_exists( __FILE__."/something_that_doesnt_exists" ) );
ini_set( "open_basedir", dirname( __FILE__ ) );
var_dump( file_exists( __FILE__ ) );
var_dump( file_exists( __FILE__."/something_that_doesnt_exists" ) );
------------------------------------------------------------------------
[2008-05-03 00:41:11] jake at yahoo-inc dot com
Description:
------------
When using open_basedir as a prefix, attempting to access files or directories which match the
prefix but are not present on the filesystem raise open_basedir restriction warnings.
Reproduce code:
---------------
// create files or directories on the file system "/foo1", "/foo2"
// add "/foo" (not "/foo/") to the open basedir restriction, then:
var_dump(file_exists('/foo1'));
var_dump(file_exists('/foo2'));
var_dump(file_exists('/foo3'));
Expected result:
----------------
this is the output returned:
bool(true)
bool(true)
bool(false)
which is expected, however, the "false" returned by the third call is disingenuous... it
is false because the call is being blocked by open_basedir, and the following warning is triggered:
[Fri May 2 17:33:05 2008] [error] PHP Warning: file_exists(): open_basedir restriction in effect.
File(/foo3) is not within the allowed path(s)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=44901&edit=1