(PHP 4 >= 4.3.0, PHP 5)
mysql_real_escape_string -- Escapa caracteres especiales de una cadena para su uso en una sentencia SQLEscapa todos los caracteres especiales en la cadena_no_escapada, tomando en cuenta el juego de caracteres actual de la conexi贸n, de tal modo que sea seguro usarla con mysql_query(). Si se van a insertar datos binarios, debe usarse esta funci贸n.
mysql_real_escape_string() llama a la funci贸n de la biblioteca MySQL mysql_real_escape_string, la cual coloca barras invertidas antes de los siguientes caracteres: \x00, \n, \r, \, ', " y \x1a.
Esta funci贸n debe usarse siempre (con algunas excepciones) para garantizar que los datos sean seguros antes de enviar una consulta a MySQL
La cadena a ser escapada.
The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() was called with no arguments. If by chance no connection is found or established, an E_WARNING level warning is generated.
Ejemplo 2. Un ejemplo de un ataque de inyecci贸n SQL
La consulta enviada a MySQL:
Esto permitir铆a que cualquiera iniciara una sesi贸n sin una contrase帽a v谩lida. |
Ejemplo 3. Una consulta "Recomendable" Mediante el uso de mysql_real_escape_string() sobre cada variable se previene la inyecci贸n de SQL. Este ejemplo demuestra el m茅todo "recomendable" para ejecutar una consulta en la base de datos, independientemente del valor de las Comillas M谩gicas.
La consulta no se ejecutar谩 correctamente ahora, y los ataques de inyecci贸n de SQL no funcionar谩n. |
Nota: Es necesaria una conexi贸n MySQL antes de usar mysql_real_escape_string() o de lo contrario un error de nivel E_WARNING es generado, y FALSE es devuelto. Si id_enlace no est谩 definido, se usar谩 la 煤ltima conexi贸n con MySQL.
Nota: Si se habilita magic_quotes_gpc, aplique stripslashes() sobre los datos primero. Usar esta funci贸n sobre datos que ya han sido escapados los escapar谩 dos veces.
Nota: Si esta funci贸n no es usada para escapar datos, la consulta es vulnerable a Ataques de Inyecci贸n de SQL.
Nota: mysql_real_escape_string() no escapa % ni _. 脡stos son comodines en MySQL si se combinan con LIKE, GRANT, o REVOKE.
| mysql_client_encoding() |
| addslashes() |
| stripslashes() |
| La directiva magic_quotes_gpc |
| La directiva magic_quotes_runtime |