"Dave" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> please hack apart this solution and point out the error/insecure nature of
the
> setup.
>
> goal, provide php access to name based virtual hosts on FreeBSD boxes
>
> problem, security of PHP access to base system and other user scripts
>
> solution,
>
> apache compiled with suexec
> # set user and group to unique
> chown USERID:USERID /path/to/user/html/directory
>
> # no public access to any files under here that
> # you don't want public reading, like scripts
> # with database login information in them
> chmod -R 0750 /path/to/user/html/directory
>
> # set group sticky execution...  we will run
> # apache as this unique group so may not be needed
> chmod g+s /path/to/user/html/directory
>
> >in apache's httpd.conf
> # set each virtual host to run any accesses
> # as the group USERID giving them only access
> # to this directory...  defeats PHP directory
> # and shell scripts as long as no public read bits
> # are set
> <virtual *>
> ServerName whatever.com
> Group USERID
> </virtual>
>
>
> Sufficient?
>
> you end up with http://test1.com and http://test2.com being unable to
create PHP
> scripts or do listings of any other virtual user directory since they are
not of
> the same group, but accesses to the site are made by invoking apache as
that
> group for that session.
>
> directory tree
> drwxr-s---  2 user1   user1  512  Aug 19 18:23 vtest1
> drwxr-s---  2 user2   user2  512  Aug 19 18:26 vtest2
>
> with directory groups set in the httpd.conf for user1 in vtest1 and user2
in
> vtest2, neither user should be able to use PHP filesystem functions to
browse
> the other directories as long as no public bits are set, and apache server
> requests still server the documents from the directories since each users
> directory has an Group user1 (or user2) set for his directory in the
directory
> or virtual container, thus executing the apache requsts as the appropriate
user
> and not the generic www user.
>
>
> Please feel free to point out any errors in my logic...  it appears pretty
solid
> from here.
>
> Dave
>


Have you looked at "open_basedir" in php.ini ?
Here's what I do:
in php.ini
     open_basedir = /dev/null

in httpd.conf
    <VirtualHost 192.168.1.10>
    ServerName whatever.com
    php_admin_value open_basedir /path/to/website
    </VirtualHost>


Peter


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to