Estoy trabajando en reforzar la seguridad en mi app y la primera cosa que estoy haciendo es servir a toda la aplicación a través de SSL. Me pregunto ¿cuán segura es que si fuera a ser la única medida que puedo tomar para asegurar la aplicación.

Por ejemplo, digamos que tengo el siguiente front-end código:

<input id="password" value="my_password_value" />
<script>
    $(document).ready(function(){
        $('#password').blur(function(){
            location.href = 'my_backend_script.php?password=' + $('#password').val();
        });
    });
</script>

Y, a continuación, en mi backend script que tengo:

$user_ID = 1;
$password = $_GET['password'];
$USER_edit = mysql_query("UPDATE USERS SET password='$password' WHERE id='$user_ID'");

Si el ejemplo anterior se estaban ejecutando en una conexión SSL, estaría a salvo de los ataques de inyección SQL?

NOTA:
Me doy cuenta de que las sentencias preparadas son el estándar para la prevención de ataques de inyección de código, y que de mejores prácticas para poner en práctica, pero yo sólo soy curioso en cuanto a cómo SSL segura es como una solución independiente.

RESPUESTA RÁPIDA:
No, SSL hace nada para prevenir ataques de inyección de SQL. Ver la aceptación respuesta a continuación.

OriginalEl autor AJB | 2013-05-10

4 Comentarios

  1. 4

    No, no realmente. La Inyección de SQL no tiene nada que ver con la seguridad de la conexión, sino que tiene que ver con la seguridad de cómo controlar la entrada de usuario. El uso de declaraciones preparadas ayuda a evitar deliberadamente mal formado datos de entrada de corromper a las consultas de SQL.

    Si todos los usuarios son usuarios de confianza que debe iniciar sesión en el uso de SSL puede proporcionar cierto nivel de seguridad en contra de la inyección de SQL, ya que sería más seguro que los usuarios que entran en su aplicación no estaría intentando hackear el sistema.

    Pero SSL no es un sustituto para la correcta escritura de la base de datos de código de acceso.

    Es más bien «No, no, en absoluto». 🙂
    Gracias @JeffOlson, que es exactamente la respuesta que necesitaba.
    Siéntase libre de aceptar la respuesta, entonces.
    todos los usuarios son usuarios de confianza que debe iniciar sesión en el uso de SSL puede dar nivel de seguridad en contra de la inyección de SQL, ya que sería más seguro que los usuarios que entran en su aplicación no estaría intentando hackear el sistema.»: Si confío en mi registra en los usuarios y el uso de SSL, ¿por qué se consigue con esto sólo nivel de seguridad en contra de la inyección de SQL ? Yo creo que hay algunos casos en la mente que yo no se. Si sí, sería de gran ayuda para hacer más explícito. Gracias.
    Siempre hay cross site scripting como un posible vector de ataque. O algún otro tipo de malware instalado en el sistema del usuario que envía en malintencionado de las solicitudes. O tal vez la cuenta de usuario ha sido violado por un hacker para robar su contraseña. Estas son algunas que puedo pensar…

    OriginalEl autor Jeff Olson

  2. 4

    SSL no sólo asegurar el canal de transmisión entre el cliente y el servidor. Pero el cliente puede enviar maliciosa de datos a través de que canal seguro.

    OriginalEl autor Gumbo

  3. 2

    SSL no protege contra ataques de inyección SQL. Preparado declaraciones, opiniones, etc, son las soluciones a la inyección de SQL.

    OriginalEl autor Erik Nedwidek

  4. 2

    La pregunta que viene a mi mente cuando leí este es: Donde es la inyección sucediendo ?

    Es un Hombre-en-el-medio que se inyecta el pícaro SQL o es un usuario registrado ?

    El uso de SSL se asegurará de (a una decente medida) que un MITM puede colarse pícaro de datos (como SQL) en mis paquetes.

    Así que, ¿por qué son tantos diciendo: inyección de código SQL es totalmente ajena a SSL ?

    En mi humilde opinión, el uso de SSL direcciones de muchos de los ataques a un decente medida.

    Por ejemplo, considere una aplicación existente en las cuales no es posible aplicar una de las soluciones para Inyección de SQL : decir, declaraciones Preparadas, debido a la cantidad de código churn que le causaría.

    ¿Qué se puede hacer para lograr fácilmente la mejor seguridad para su aplicación ?

    Como @JeffOlson mencionado, si los usuarios están obligados a inicio de sesión y una vez que ha iniciado sesión en la que usted confía en ellos, entonces SSL es una solución suficiente (para la inyección de SQL y un par de otros ataques).

    Aunque parece que ya están de acuerdo de que SSL no la dirección de la inyección de SQL totalmente para cada aplicación.

    Excelente punto de @brainOverflow. Ahora que estoy ganando una mejor comprensión de cómo los ataques de inyección a pasar yo estoy empezando a ver que la relación entre los dos está más cerca de lo que muchos creen. Todavía creo que el mejor (más rápido), la respuesta es que SSL no hace nada para evitar los ataques de SQL, pero también estoy empezando a ver que SSL y declaraciones preparadas se deben usar juntos con el fin de asegurar completamente la aplicación.

    OriginalEl autor brainOverflow

Dejar respuesta

Please enter your comment!
Please enter your name here