Désactiver les magic quotes "manuellement"

Voici un extrait de code bien pratique en provenance directe du manuel PHP : la désactivation des magic quotes au niveau du code pour ceux qui ne peuvent pas modifier la configuration de PHP via le php.ini ou un fichier .htaccess.

if ( get_magic_quotes_gpc() ) {

    function stripslashes_deep( $value ) {

        return ( is_array($value) )
            ? array_map('stripslashes_deep', $value)
            : stripslashes($value);

    } // end of 'stripslashes_deep()'

    $_GET      = array_map('stripslashes_deep', $_GET);
    $_POST     = array_map('stripslashes_deep', $_POST);
    $_COOKIE   = array_map('stripslashes_deep', $_COOKIE);

}

On pourrait se dire qu'un simple ini_set('magic_quotes_gpc', 0); � la place du code précédent pourrait suffir mais il faut savoir que cela ne fonctionnera pas ; la gestion des magic quotes se fait avant le début de l'execution de votre script.

Pour finir, prenez bien en compte la mise en garde du manuel � propos de cette désactivation :

Magic-quotes a été ajouté pour réduire l'écriture de codes dangereux par les débutants. Si vous désactivez les magic quotes, vous devez être très prudent en vous protégeant des attaques injections SQL.

Il vous faudra donc gérer manuellement la validité des données réceptionnées et notament la présence de ces quotes, un addslashes faisant l'affaire pour protéger votre code par la suite.

Posté le jeudi 28 octobre 2004 dans .

Commentaires

Il n'y a aucun commentaire ; soyez le premier à déposer le vôtre.

Ajouter un commentaire

Il n'est plus possible de réagir à cette entrée directement mais si vous pensez que votre intervention peut être intéressante, envoyez-moi votre commentaire, je l'ajouterai ici en votre nom.