Ciao, voglio sapere perché questo tipo di domanda di esempio non è mai stata posta prima.
Ho ricevuto questo codice dal mio college che dicono che questo tipo di codice è in grado di prevenire l'iniezione SQL.
Usiamo CodeIgniter per costruire un sito Web e qui è il codice per prevenire l'iniezione SQL.
Controller:
$usr = $this->input->post('userid');
$pwd = $this->input->post('passwd');
if($usr && $pwd) {
$ack = $this->mAuth->get_user($usr);
$pwx = $ack['passwd'];
if($ack && $pwd == $pwx) {
//redirect code
}
Modello:
public function get_user($user_id='', $status=1) {
$user_id = $this->db->escape(trim($user_id));
$status = $status ? 'and user_status_uid = 1' : '';
$sql = "select * from users where user_id = lower($user_id)"
return rst2Array($sql, 'row');
}
Ho provato ad accedere con 1'
o 1 = 1
ed ecc., ho trovato e impedito l'SQL injection anche se è solo un testo e una password.
C'è qualche vulnerabilità a questo codice? grazie