Re: User question for PHP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/20/06, Ivo F.A.C. Fokkema <I.F.A.C.Fokkema@xxxxxxx> wrote:
On Fri, 20 Oct 2006 15:49:14 +1000, Chris wrote:

> Andy Hultgren wrote:
>> To whoever was asking this (sorry didn't see the original email):
>>
>>>> Is it possible to have a PHP script execute as the user of the domain
>>>> instead of the webserver? So when I upload files through a PHP script
>>>> they are owned by me and not "wwwrun" or "nobody"?
>>
>> I was recently exchanging on this list about that very topic.  It's in the
>> archives for this list.  Go to www.php.net and set the dropdown menu in the
>> upper right corner of the page to "general mailing list", then type "File
>> Upload Security and chmod" into the search field and hit enter.  The
>> conversation is within the first few hits on this search.
>> The server hosting my site runs with php executing as "me" (the owner of
>> the
>> domain), and we covered some of the potential security pitfalls of such a
>> situation (mainly centered on the fact that this makes any php script far
>> too powerful).  In my situation I couldn't change how the server was set
>> up;
>> however, the general consensus was that this situation created a number of
>> serious security concerns that had to be very carefully addressed.  I would
>> avoid this configuration if you have the choice, based purely on the advice
>> I received.
>
> Actually you have that the wrong way around.
>
> If php is running as "www" or "nobody" then any files or directories
> that a php script creates will be done as the web server user.
>
> That means (potentially) that if domain 'a' creates a file, domain 'b'
> can read and write to that file and even delete it.
>
>
> If php is running as you instead, you can control this with appropriate
> chmod commands (at least removing the risk of deleting of files /
> updating of files).
>
> A shared user (like "www" or "nobody") is a *much* bigger risk than
> separate users.

Unless those separate users have a little more access than just SSH
and FTP access to the machine... I guess that if anyone with special
rights carelessly activates suPHP and leaves the PHP files owned by him,
you'd have PHP scripts capable of reading out special log files and
whatnot.

To my experience, apache (with PHP running as www-data or nobody or
whatever) will not be able to create files or folders without user
intervention (chmod, chown), thus no updating and removing is possible
either by default.

php running through apache:

<?php
mkdir('/path/to/dir');
?>

Making that in a "shared" location will allow *any* domain to write to
it, read from it or delete it (forget about possible open_basedir
restrictions).

Running as cgi you don't get that problem.

I could be completely misunderstanding what suPHP does.
--
Postgresql & php tutorials
http://www.designmagick.com/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux