Re: filesystem security questions
| From: | Markus Fischer | Date: | Sat, 08 Jun 2002 10:42:00 +0000 |
| Subject: | Re: filesystem security questions | ||
| References: | 1 2 3 4 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-85031@lists.php.net to get a copy of this message | ||
Hi,
On Sat, Jun 08, 2002 at 06:22:29AM -0400, Rob Richards wrote :
> I have a few questions about correctly implementing safe_mode, open_basedir
> and allow_url checks within an extension.
> Probably an easy question, but I have seen it implemented in various ways in
> different extensions and want to make sure i implement this correctly.
>
> allow_url checks:
> is there a standard function which produces an error if not allowed, or
> do I just handle this within the extension after testing with
> PG(allow_url_fopen)?
In CVS HEAD we've a new, generic implemention called
'streams'. The streams implementation takes care of this. See
main/streams.c in locate_url_wrapper (which is called when
you create a new stream):
if (wrapper && wrapper->is_url && !PG(allow_url_fopen)) {
zend_error(E_WARNING, "URL file-access is disabled in the server configuration");
return NULL;
}
Practically, there's no documentation about streams except
some mail Wez sent to php-dev@ a few weeks (months?) ago (and
the sources, of course), I hope you can find it in the
archives.
> safe_mode:
> this is done by testing both php_check_safe_mode_include_dir and
> php_checkuid if safe_mode is enabled, correct?
>
> open_basedir:
> this is just done with php_check_open_basedir?
I leave this open as I'm not an expert in this field. Current
implementation seem to call php_checkuid first and then
php_check_open_basedir (grep for the functions in
ext/standard/* ).
- Markus
--
GnuPG Key: http://guru.josefine.at/~mfischer/C2272BD0.asc