Evitar sql injection y xss

Ricardo Mun~oz A. rmunoz en pjud.cl
Mar Sep 25 09:47:52 CLT 2007


Rodrigo Fuentealba wrote:
> El 24/09/07, Aldrin Gonzalo Martoq Ahumada <amartoq en dcc.uchile.cl> escribió:
>   
>> On 9/24/07, Alvaro Herrera <alvherre en alvh.no-ip.org> wrote:
>>     
>>> Ricardo Mun~oz A. escribió:
>>>       
>>>>>> $condiciones = array('nombres' => "LIKE %$nombres%", 'otro_campo' => "<>
>>>>>> $valor", etc.);
>>>>>> $this->set('clientes', $this->Cliente->findAll($condiciones));
>>>>>> ...
>>>>>>             
>>>> ADOdb para PHP permite hacer lo que mencionas.
>>>> que tiene de feo el codigo de CakePHP? es solo tu gusto personal o tienes
>>>> algo concreto que aportar?
>>>>         
>> Lo que ví lo encontre pésimo. Me explico un poco más abajo.
>>
>>     
>>> El codigo de arriba tiene un SQL injection, no?
>>> Mi problema con el codigo de arriba es que es un ORM,
>>>       
>> El problema con el código que miré de CakePHP es que "no es ni chicha'
>> ni limona'. No es un ORM, no es una API a base de datos, no es una
>> framework de templates... es una mezcla de todo eso y parece que mucho
>> mas.
>>     

[...]

>> 3. The Sanitize sql method
>> The sql method escapes some special characters in a string with
>> backslashes in order to prepare the string for use in a SQL statement.
>> Comentario: Igual que en el caso HTML, no tiene sentido proveer de una
>> API para escapar caracteres para la base de datos... al menos, no
>> publicarla externamente.
>>     
>
> Sanitizar no es extremadamente malo. Bien usado, puede ser bueno, pero
> el sólo hecho de que el desarrollador deba sanitizar a mano cada uno
> de sus datos ya es un riesgo.
>   

y quien dijo que en Cake se debe hacer a mano? lee bien los mails antes 
de responder tonteras...

-- 
Ricardo Mun~oz A.
Usuario Linux #182825 (counter.li.org)


Más información sobre la lista de distribución Linux