Sorry about the forwarding... had a little hiccup with my mail server...

----- Original Message ----- 
From: "Wez Furlong" <[EMAIL PROTECTED]>
To: "Rob Richards" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Tuesday, September 30, 2003 7:10 PM
Subject: Re: [PHP-DEV] filepaths, uris, safemode, etc..


> Hi Rob,
>
> The streams code, and also sqlite does this when checking for safemode for
> local files:
>
> if (PG(safe_mode) && (!php_checkuid(path, NULL,
> CHECKUID_CHECK_FILE_AND_DIR))) {
>     return SQLITE_DENY;
> }
> if (php_check_open_basedir(path TSRMLS_CC)) {
>     return SQLITE_DENY;
> }
>
> You'll probably want to check if the path is a URI or local path first;
the
> streams code checks for :// to make this decision.
>
> If you're planning to tie streams into libxml, feel free to reuse the code
I
> added to pecl/soap:
> http://cvs.php.net/diff.php/pecl/soap/php_xml.c?r1=1.5&r2=1.6&ty=u
> http://cvs.php.net/diff.php/pecl/soap/soap.c?r1=1.15&r2=1.16&ty=u
>
> --Wez.
>
>
> ----- Original Message ----- 
> From: "Rob Richards" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, September 30, 2003 12:52 PM
> Subject: [PHP-DEV] filepaths, uris, safemode, etc..
>
>
> Within the dom extension, I am trying to resolve an issue with uris and
> local filepaths which are passed to libxml.
> When I get the filepath, I need to resolve any local filepaths to an
> absoulte path. On top of this the safemode checks need to be done before
> passing any of these to libxml.
>
> So far I started with taking the user supplied source string and running
> that through the safemode checks.
> If this passes, then the source is tested as follows:
>
> If uri, then it is passed to libxml, otherwise it gets passed through
> expand_filepath and the resolved path is passed to libxml.
>
> It has been noted that file uris should not be passed in directly, but go
> through the same path resolutions as local files and that the following
> block of code be used instead of just using expand_filepath on all non uri
> and file uri source strings:
> #ifdef VIRTUAL_DIR
>     virtual_filepath_ex(source, &resolved_path, NULL TSRMLS_CC);
> #else
>     resolved_path = source;
> #endif
>
> My problem is that if VIRTUAL_DIR is not defined, then the resolved path
> ends up being the origional source supplied, which means that relative
paths
> are not resolved. Also, should the path resolutions be done before the
> safemode checks?
>
> On top of this I am looking at allowing additional registered streams to
be
> used, so not sure if that would change any of this.
>
> What is the correct way to implement this?
>
> Thanks,
>
> Rob
>
>

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to