se impide la entrada de mi frente a la inyección de SQL?
No exactamente "automáticamente", pero proporciona consultas con parámetros. CodeIgniter o no, debe utilizar las consultas parametrizadas con preferencia para consultar el pirateo de cadenas siempre que sea posible.
$bof= "a'b";
$zot= 'a\b';
// Insecure! Don't do this!
//
$this->db->query("SELECT foo FROM bar WHERE bof='$bof' AND zot='$zot'");
// Secure but annoying to write
//
$this->db->query("SELECT foo FROM bar WHERE bof='".$this->db->escape($bof)."' AND zot='".$this->db->escape($zot)."'");
// This is what you want
//
$this->db->query('SELECT foo FROM bar WHERE bof=? AND zot=?', array($bof, $zot));
Nota esto no es nada que ver con ‘entrada’: cuando realiza una consulta SQL de ustedes cadenas imprescindible el uso de parametrización o escapar de hacerlos aptos, independientemente de si son o no la entrada del usuario.Esta es una cuestión de corrección simple; la seguridad es un efecto secundario de esa corrección.
Del mismo modo cuando el texto de salida en HTML, es necesario iniciar la codificación HTML a <
, &
y "
personajes en él continuación. De nada sirve intentar jugar con la entrada para escapar o eliminar caracteres que podrían ser problemáticos en el futuro si los usa sin escaparse en SQL o HTML. Destruirá su producción teniendo escapes inesperados de SQL en HTML (por lo que ve barras invertidas auto-multiplicadas en aplicaciones mal escritas) y escapadas de HTML no deseadas en SQL. Y si toma texto de otra parte que no sea la entrada directa del usuario (por ejemplo, el material que ya está en la base de datos), no estará protegido en absoluto.
También se trata xssclean con la inyección SQL de alguna manera?
No. Está destinado a la inyección de HTML. Pero es peor que inútil. Nunca lo use
"Filtrado XSS" es completamente falso (de nuevo, CodeIgniter o de cualquier otra persona). XSS debe evitarse mediante una salida de escape de HTML correcta, sin modificar la entrada. El filtrado XSS no le protegerá adecuadamente si su aplicación aún no es segura; en el mejor de los casos, ofuscará sus defectos existentes y le dará una falsa sensación de seguridad. También destruirá una gran cantidad de datos válidos que CI cree que parecen etiquetas.
La palabra 'active record' se puede malinterpretar y los documentos de CI cambian a' query builder' https://codeigniter.com/user_guide/database/query_builder.html – teek