Wordpress escapa automáticamente las comillas simples!
En wp-settings.php alrededor de la línea 581 de wordpress 2.8 encontramos:
1 2 3 4 5 6 7 8 9 10 11 12 | // If already slashed, strip. if ( get_magic_quotes_gpc() ) { $_GET = stripslashes_deep($_GET ); $_POST = stripslashes_deep($_POST ); $_COOKIE = stripslashes_deep($_COOKIE); } // Escape with wpdb. $_GET = add_magic_quotes($_GET ); $_POST = add_magic_quotes($_POST ); $_COOKIE = add_magic_quotes($_COOKIE); $_SERVER = add_magic_quotes($_SERVER); |
O sea que independientemente de tu configuración en php.ini:
1 2 | ; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off |
WP siempre escapará las comillas.
Luego en teoría no sería necesario usar addslashes o addslashes_gpc:
1 |
Y siempre deberíamos usar stripslashes al reescribir datos pasados por $_POST:
1 | <input type="text" name="keyword" value="<?php echo htmlspecialchars(stripslashes($_POST['keyword'])) ?>"> |
La verdad es que no me gusta nada. Pero no queda más que aceptarlo como una medida de seguridad adecuada para permitir la creación de tantos plugins para WP a la mayor cantidad de codificadores.
Como sea, es mejor no olvidar esta característica de WP.
Update 07/dic/2009
Parece que esto no va a tener pronta solución. Hace años que el tema está instalado:
http://core.trac.wordpress.org/ticket/5791
Quizás con la instauración de PHP 6 que elimina magic_quotes se haga por fin una revisión de esta característica de WP.



RSS Feed