Stefan, do you truly believe that other languages allow for secure shared 
hosting without using a setuid or chroot solution? I mean
take Ruby, Python, Java, C/C++. Can you point out one of them which would not 
have the issues that PHP has? I think the problem in
this case is that shared hosters do not deploy PHP securely. Is this our 
problem? Yes, I think we need to provide better best
practices on how to do it although there is quite a lot of information on the 
Web on how to do it. In any case, I am planning to
write up something more structured so that shared hosters start doing the right 
thing. The big ones I have worked with actually do
have a clue and deploy PHP well.

Do we need to provide better tools for our developers? Definitely! This is why 
we are working on ext/filter (I agree the first pass
wasn't very successful), a filter extension in Zend Framework, and other best 
practices.

We have also made significant progress on the core PHP security issues 
including a coverity code scan (and we are planning to use an
additional company), removing flawed features such as register_globals and 
safe_mode (the latter was never encouraged but I can't
blame people for falling into the trap with the crappy name), and many other 
things. We also have had IBM Research look into various
aspects of PHP one of these efforts led to Wietse Venema's suggestion for 
tainting (which is the main reason why Stefan left the
security team as he took that personally because a few years ago he brought up 
the idea and we weren't in favor).

Stefan has a personal vandetta against the PHP Group because we had asked him 
not to use the PHP brand in the Hardened-PHP patch.
This was absolutely not personal but a result of our license. For the same 
reason Zend does not use PHP in its product names as the
PHP license does not allow it. We can not enforce that with projects which are 
not directly derived from PHP's source code like PHP
applications and groups, but Stefan considers we are still following a double 
standard which we aren't.

To be clear, I am not saying PHP doesn't have vulnerabilities. Of course it 
does. And so do other languages check the bug database
of your favorite language and you'll see the segfaults except for languages 
which don't seem to have an open bug database like
Microsoft's and Ruby (I couldn't find the latter). Stefan has actually been 
very helpful in identifying some of these areas and we
have done our best to address them quickly. 

I hope at some point Stefan is going to channel his knowledge in a more 
positive way.
Andi

> -----Original Message-----
> From: Stefan Esser [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, January 11, 2007 8:05 AM
> To: Rasmus Lerdorf
> Cc: Alain Williams; internals@lists.php.net; [EMAIL PROTECTED]
> Subject: Re: [PHP-DEV] Comments on PHP security
> 
> Hello Rasmus,
> > There are some concrete suggestions in the article that we 
> addressed a 
> > while ago.  Things like:
> >
> >   "I'd like to see new defaults that limit include() and 
> require() to
> >    only allow local files, thereby avoiding remote file injection."
> >
> > That's the default in PHP 5.2.0 which was released over 2 
> months ago now.
> >   
> This is not true. It was demonstrated several times that the 
> "protection" is easily bypassed by using data:// or php://input URLs.
> Maybe this is fixed in PHP 5.2.1 but it is not in 5.2.0. And 
> it certainly is no protection at all when someone can just 
> use one of the other URL wrappers of PHP that are considered 
> safe and put in an overlong URL that produces a stack 
> overflow. (Hello zip://)
> 
> > Another thing to keep in mind is that there are two very distinct 
> > security issues here.  Remote vs. Local issues.  Just about every 
> > reported security problem against PHP itself has been of the Local 
> > variety.  That means that it is a flaw in our various attempts to
> >   
> What a blatant lie. PHP had several bufferoverflows etc... in 
> functions often exposed to user input and some direct remote 
> exploits in the past.
> To just name a few: htmlentities() overflow, about a million 
> bugs in unserialize(), fileupload exploits, memory_limit 
> exploits, ... Last year there was f.e. the 
> zend_hash_del_key_or_index vulnerability that exposed a large 
> number of PHP applications to remote attacks. Ah yes and If I 
> had not babysitted the CVS in the past there would be even 
> more direct remote exploits against PHP, like the HTTP Digest 
> Auth double free vulnerability. And yes, only looking at 
> local holes, PHP has more than enough of them.
> > In this case you could have a mod_security rule to disallow ../.. 
> > style patterns in URLs.  But if someone found a way to still sneak 
> > that pattern through, perhaps because of a bug in 
> mod_security related 
> > to
> >   
> There is nothing more trivial than sneaking something through 
> the combination mod_security + PHP.
> 
> > tag, it might slip through.  Next, ext/filter kicks in with 
> a default 
> > filter of "special_chars" for example and changes " to 
> " and the
> >   
> Maybe, if ext/filter would be bug free...
> 
> Stefan Esser
> 
> PS: Stop the "We are secure" marketing and face reality
> 
> --
> PHP Internals - PHP Runtime Development Mailing List To 
> unsubscribe, visit: http://www.php.net/unsub.php
> 

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

Reply via email to