he leído desde el libro de cocina (seg. 4,2)Al hacer la desinfección en CakePHP
CakePHP te protege contra la inyección de SQL si utiliza métodos ORM de CakePHP (como find() y save()) y la notación de matriz adecuada (es decir, array ('campo' => $ valor)) en lugar de SQL sin procesar. Para desinfectarse contra XSS, generalmente es mejor guardar HTML sin formato en la base de datos sin modificaciones y desinfectar en el momento de la salida/visualización.
¿Estamos seguros de que NUNCA necesitamos desinfectar manualmente los datos del usuario contra SQL, siempre que restrinjamos a métodos como find() y save()? Especialmente, ¿es esto cierto si tomo mis datos de $ _POST directamente en lugar de $ this-> data? En otras palabras, supongamos que realizo una consulta find() usando $ this-> data. Entonces, CakePHP desinfecta contra SQL cuando escribe la matriz $ this-> data o cuando escribe la consulta para find()?
Mi segunda pregunta es para desinfectar los datos que se mostrarán. ¿Es Sanitize :: html idempotent? Entonces, ¿puedo usarlo en mi método beforeSave(), o se romperá la segunda vez que guardo porque se aplica nuevamente y da un nuevo resultado?
Ok, lo estoy haciendo, pero sólo para entender. Supongamos que hago una consulta find() usando $ this-> data. Entonces, CakePHP desinfecta contra SQL cuando escribe la matriz $ this-> data o cuando escribe la consulta para $ this-> find()? En el segundo caso, la desinfección todavía parece superflua incluso si uso $ _POST – Andrea
Por cierto, estoy desinfectando los datos que se mostrarán. Estoy pidiendo datos para ser utilizados en consultas SQL. – Andrea