est mon entrée empêché contre l'injection SQL?
Pas exactement 'automatiquement', mais il fournit des requêtes paramétrées. CodeIgniter ou non, vous devriez utiliser des requêtes paramétrées de préférence pour interroger le piratage de chaîne autant que possible.
$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));
Remarque Cela n'a rien à voir avec « entrée »: lorsque vous effectuez une requête SQL de chaînes que vous doit utiliser paramétrisation ou d'échapper pour les adapter, peu importe si elles sont entrées utilisateur ou non.C'est une question de simple correction; la sécurité est un effet secondaire de cette correction.
De même lorsque vous texte de sortie en HTML, vous devez en code HTML <
, &
et "
caractères dans ce puis. Il est absolument inutile d'essayer de jouer avec l'entrée pour échapper ou supprimer des caractères qui pourraient être gênants dans le futur si vous les utilisez sans s'échapper en SQL ou HTML. Vous allez réduire votre sortie en ayant des fuites SQL inattendues en HTML (ce qui explique pourquoi vous voyez des barres obliques inversées qui se multiplient dans les applications mal écrites) et un échappement HTML indésirable dans SQL. Et si vous prenez un texte ailleurs que sur cette entrée directe de l'utilisateur (par exemple, du matériel déjà dans la base de données), vous n'êtes pas protégé du tout.
De même, xssclean traite-t-il l'injection SQL de quelque façon que ce soit?
Non. Il est destiné à l'injection HTML. Mais c'est pire que sans valeur. Ne l'utilisez jamais. "Filtrage XSS" est complètement faux (encore, CodeIgniter ou quelqu'un d'autre)
XSS doit être empêché par une sortie HTML correctement échappée, ne manquant pas d'entrée. Le filtrage XSS non vous protège adéquatement si votre application n'est pas déjà sécurisée; au mieux, il va obscurcir vos défauts existants et vous donner un faux sentiment de sécurité. Cela va aussi déformer beaucoup d'entrées valides qui, selon CI, ressemblent à des balises.
Le mot «enregistrement actif» peut être mal compris et les documents CI ont été modifiés en «query builder» https://codeigniter.com/user_guide/database/query_builder.html – teek