Manuel PHP
Précédent
Chapitre 5.
Sécurité
Suivant
Une fonctionnalité de PHP qui peut être utilisée pour améliorer la sécurité est de configurer PHP en inactivant l 'option register_globals.
En supprimant la possibilité que les variables envoyées par les internautes soient injectées automatiquement dans le script PHP, vous pouvez restreindre la quantité de variables non-protégées.
Les intrus devront prendre beaucoup plus de temps pour corrompre les mécanismes d 'envoi de données, et vos variables internes seront nettement mieux protégées.
Bien que cela augmente d 'autant les efforts à fournir pour écrire un script PHP, les bénéfices peuvent en être nettement plus interessants.
Exemple 5-8.
Travailler avec register_globals actif
?php if ($username) {/ / attention, cette valeur peut être parasitée via GET / POST / COOKIES $good_login = 1;} if ($good_login == 1) {/ / attention, cette valeur peut être parasitée via GET / POST / COOKIES fpassthru (" / données / très / très / sensibles / index.html");}?
Exemple 5-9.
Travailler avec register_globals actif
?php if( $HTTP_COOKIE_VARS["username"]) {/ / ne peut provenir que d'un cookie, corrompu ou pas $good_login = 1; / / Impossible à parasiter fpassthru (" / données / très / très / sensibles / index.html");}?
Exemple 5-10.
Détection de corruption de variables
?php if ($HTTP_COOKIE_VARS['username'] !$HTTP_POST_VARS['username'] !$HTTP_GET_VARS['username']) {/ / D'autres vérifications pour vérifier l'origine du nom d'utilisateur fourni $good_login = 1; fpassthru (" / données / très / très / sensibles / index.html");} else {mail("admin@example.com", "Tentative de piratage", $HTTP_SERVER_VARS['REMOTE_ADDR']); echo "Problème de sécurité, l'administrateur est alerté ."; exit;}?
Précédent
Sommaire
Suivant
Rapport d 'erreur
Niveau supérieur
Données transmises par les internautes