Nueva pregunta

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. Etiquetas: Votos: 1 - Respuestas: 1 - Vistas: 16 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • 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
 
frjcbbae garagebible.com