Well the tool would point the developer at the data they have to
validate/filter. At that point the developer has to have a brain and needs
to know what he's doing with the data. Fortunately, if he has the right sets
of APIs in ext/filter which help him with this task, then it should be clear
to the average developer which ext/filter API he should choose. If we need
to improve those APIs then that can be done in parallel. 

> -----Original Message-----
> From: Ilia Alshanetsky [mailto:[EMAIL PROTECTED] On Behalf Of 
> Ilia Alshanetsky
> Sent: Friday, December 15, 2006 3:12 PM
> To: PHP internals
> Subject: Re: [PHP-DEV] Run-time taint support proposal
> 
> 
> On 15-Dec-06, at 6:06 PM, Wietse Venema wrote:
> 
> > Ilia Alshanetsky:
> >> On 15-Dec-06, at 5:19 PM, Wietse Venema wrote:
> >>> Ilia Alshanetsky:
> >>>> That means an additional element to a struct that has 
> thousands of 
> >>>> instances in most scripts, this will be the first 
> overhead caused 
> >>>> by the memory footprint increase.
> >>>
> >>> There is no need for that.
> >>>
> >>> <       zend_uchar is_ref;
> >>> ---
> >>>>       zend_uchar is_ref:7;
> >>>>       zend_uchar taint_flag:1;
> >>>
> >>> Perhaps a working implementation will be convincing.  I 
> offer to do 
> >>> the work, other people lose nothing except the 
> possibility that they 
> >>> will be proven right.
> >>
> >> By all means :-)
> >>
> >> I suppose by making taint_flag 1 bit, you are assuming taint is 
> >> purely black and white and that all untaint functions will secure 
> >> data against all forms of usage.
> >
> > If the default fail-close security policy is no function receives 
> > tainted input unless explicitly stated otherwise, then one bit 
> > suffices. That is actually the easiest part.
> 
> And here is your first exploit, let's say we say
> mysql_real_escape_string() takes tainted data and makes it 
> untainted, what happens when this "safe" data is passed to 
> exec(). You are going to need to deal with different levels 
> of taint-untainted and 1 bit is not going to give you that 
> flexibility. You are going to need an int/ long, maybe even a 
> long long.
> 
> Ilia Alshanetsky
> 
> --
> 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