Pregunta:
Fecha: 22-01-2018 18:46:15
(En Español)
¡Urgente! protección de base de datos[No resuelta]
Buenas noches: quisiera saber como puedo evitar la inyección de codigo sql para proteger la base de datos de una aplicacion web. Votos: 1 - Respuestas: 1 - Vistas: 16 Compartir en: Google Facebook Twitter LinkedIn LinkRespuestas:
-
Fecha: 22-01-2018 19:10:40 Sí, utiliza la extensión que quieras (mysqli, pdo, etc) pero al realizar consultas utiliza sentencias preparadas (prepared statements) y lo más importante de todo es que debes de enlazar los parametros (parameter binding).
Con eso tienes más que suficiente.
Te dejo un ejemplo en MySQL tomado de la página de PHP.
<?php $mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world'); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $code = 'DEU'; $language = 'Bavarian'; $official = 'F'; $percent = 11.2; $stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)"); $stmt->bind_param('sssd', $code, $language, $official, $percent); /* execute prepared statement */ $stmt->execute();
Y aquí el ejemplo de PDO tomado también de la página de PHP:
<?php /* Execute a prepared statement by binding PHP variables */ $calories = 150; $colour = 'red'; $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour'); $sth->bindParam(':calories', $calories, PDO::PARAM_INT); $sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12); $sth->execute();
Espero que te sirva
Saludos Votos: 3 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
