/ / ¿Tenemos que usar mysql_real_escape_string () mientras trabajamos con sesiones? - php, mysql, session, mysql-real-escape-string

¿Tenemos que usar mysql_real_escape_string () mientras trabajamos con sesiones? - php, mysql, session, mysql-real-escape-string

Por favor, mire los códigos a continuación:

$username = $_POST["username"];
$_SESSION["user_name"] = $username;

Tengo que usar mysql_real_escape_string() funciona mientras estoy configurando $username valor también? ¿Hay alguna amenaza aquí si no lo hago?

Atención: Utilicé PDO mientras quiero trabajar con MySQL.

Respuestas

5 para la respuesta № 1

No, no necesitas escapar de ninguna manera allí. Solo necesita escapar del texto si lo está concatenando con otro texto donde ciertos caracteres pueden tener un significado especial. Ver The Great Escapism (O: Lo que necesitas saber para trabajar con texto dentro de texto).


4 para la respuesta № 2

No tiene que hacerlo, utilícelo solo cuando quiera escapar de los caracteres para ingresarlo en la base de datos.


3 para la respuesta № 3

Mysql_real_escape_string () se utiliza para fines de seguridad, por lo que los usuarios no podrían "hacer la inyección SQL. Si no está utilizando" $_SESSION["user_name"] o $username para la base de datos, entonces no tendrá que usarla. Puede leer más aquí. http://php.net/manual/en/function.mysql-real-escape-string.php

mysql_real_escpae_string () agrega una barra invertida a cada carácter especial.

Además, debes revisar algunos de los ejemplos de inyección de SQL, para que tengas una idea de cómo se hace, y qué es exactamente lo que mysql_real_escape_string () está evitando. http://www.unixwiz.net/techtips/sql-injection.html .


0 para la respuesta № 4

No debería tener que hacerlo, ya que los datos de la sesión solo se pueden manipular en el servidor.

Si tu SABER tiene datos allí que se van a usar en una consulta y tiene caracteres que necesitan escapar, obviamente, debe asegurarse de que eso suceda.

Cualquier valor que almacene en sesiones que contengan cualquierUn lenguaje como "OR 1 = 1" se basa básicamente en un diseño de la aplicación IMO deficiente: cualquier valor en la sesión que pueda abrirle a lapsos de seguridad es culpa suya, solo asegúrese de que no pueda hacerse.