Hola, quiero saber por qué este tipo de pregunta de ejemplo nunca se hizo antes.
Recibí este código de mi universidad que dice que este tipo de código puede prevenir la inyección de SQL.
Utilizamos CodeIgniter para crear un sitio web y aquí está el código para evitar la inyección de SQL.
Controlador:
$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
}
Modelo:
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');
}
Intenté iniciar sesión con 1'
o 1 = 1
y etc., encontré y previno la inyección de SQL aunque solo es un texto simple y una contraseña.
¿Existe alguna vulnerabilidad a este código? gracias