es "mysqli_real_escape_string" mysqli es suficiente "mysqli_real_escape_string" suficiente contra los ataques sql?
intenta proteger contra inyecciones SQL usando "mySQLI_REAL_STRING ()". Sin embargo, como lo indica Uri2x, esta medida es inadecuada.
vulnerabilidad a inyección sql
"mysqli_real_escape_string ()" solo escapa ciertos personajes, dejando su pregunta vulnerable a sql ataques de inyección. Por ejemplo, el siguiente código aún podría ser vulnerable:
$email = mysqli_real_escape_string($db_con, $_POST['email']); $query = "SELECT * FROM users WHERE email = '" . $email . "'";
un atacante podría ingresar una dirección de correo electrónico como "correo electrónico "@example.com" para explotar la consulta, agregando declaraciones SQL adicionales después de la entrada escapada.
use de declaraciones preparadas
en lugar de "mysqli_real_escape_string ()", la forma más efectiva de prevenir las inyecciones de SQL es emplear declaraciones preparadas. Las declaraciones preparadas separan datos de la cadena de consulta, evitando la contaminación de datos.
$stmt = $db_con->prepare("INSERT INTO users (email, psw) VALUES (?, ?)"); $stmt->bind_param('ss', $email, $psw); $email = mysqli_real_escape_string($db_con, $_POST['email']); $psw = mysqli_real_escape_string($db_con, $_POST['psw']); $stmt->execute();
estricto carácter Whitelisting
en situaciones donde las declaraciones preparadas no son factibles, implementar una lista blanca de carácter estricto puede garantizar la seguridad. Esto implica filtrar la entrada para asegurarse de que solo contenga caracteres permitidos.
conclusion
"mysqli_real_escape_string ()" Solo es insuficiente para proteger contra las inyecciones SQL. Las declaraciones preparadas y la lista blanca estricta proporcionan salvaguardas más robustas contra estos ataques.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3