strip_tags remove ent_quotes ejemplo php magic-quotes-gpc

php - remove - strip_tags()



¿Trabajas con citas mágicas o simplemente te aseguras de que estén apagadas? (4)

Me aseguraría de que esté desactivado si eso es posible (requiere acceso a .htaccess o configuración de apache). Es mejor evitarlo por completo que despojarlo de su comportamiento que requiere más recursos y es propenso a errores.

Si deshabilitarlo no es una opción, su código de ejemplo podría ser útil para los superglobales de entrada ($ _GET, $ _ POST, ...), pero asegúrese de no aplicarlo a los datos que lleguen de fuentes distintas a las superglobales. Tal uso indebido es bastante común .

Solo asegúrate de desactivar magic_quotes_gpc () para tener un mecanismo de escape adecuado para protegerte de la ingesta de SQL (como mysql_real_escape_string () o declaraciones preparadas por PDO). Puede leer más sobre la prevención de inyección SQL - aquí .

¿Vale la pena cambiar mi código para ser "más portátil" y capaz de lidiar con el horror de las citas mágicas, o debería simplemente asegurarme de que siempre esté desactivado a través de un archivo .htaccess?

if (get_magic_quotes_gpc()) { $var = stripslashes($_POST[''var'']); } else { $var = $_POST[''var'']; }

Versus

php_flag magic_quotes_gpc off


En una nota más al margen, php 6 ya no los apoyará. Así que escribir el código para ellos puede ser beneficioso en el futuro.


Verificaría la configuración usando get_magic_quotes_gpc() y haría una gran salida ruidosa con error. En el error, informe al administrador de la configuración adecuada.


No se adapte a ambas situaciones. Dos rutas de código = el doble de dolores de cabeza, además de que hay una buena probabilidad de que se equivoque y olvide manejar ambas situaciones en alguna parte.

Solía ​​comprobar si las comillas mágicas estaban activadas o desactivadas, y si estaban activadas, deshacer su magia (como han sugerido otros en el hilo). El problema con esto es que estás cambiando el entorno configurado (sin importar cuán estúpido) pueda esperar otro programador.

En estos días escribo código como si las citas mágicas estuvieran desactivadas, y en mi archivo principal include / bootstrap / always-runs compruebo si las comillas mágicas están activadas o desactivadas. Si están activados, arrojo una excepción que explica por qué es algo malo y proporciono instrucciones sobre cómo pueden desactivarse.

Este enfoque le permite programar un solo comportamiento, anima a otras personas que usan su código a configurar sus servidores correctamente (las citas mágicas desaparecen en PHP 6), y si alguien realmente necesita citas mágicas, puede manejar su excepción y quitarse la vida en sus propias manos.