Eviter injection sql

Mammouth du PHP | 569 Messages

09 août 2018, 05:58

Bonjour,
J'ai trouvé un "hack" dans mes acces.

91.134.143.162 - - [07/Aug/2018:04:00:01 +0200] "GET /actu.php?ville=';DROP%20DATABASE%20ncs125889;-- HTTP/1.1" 301 280 "-" "Wget/1.18 (linux-gnu)" "monsite.fr"

Donc j'ai trouvé comment ma base été supprimée j'aimerais me protéger de cela...et voudrais savoir comment faire du coup s'il vous plait.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 7702 Messages

09 août 2018, 09:48

Toutes tes variables que tu récupères d'un visiteur, SANS EXCEPTION, doivent être filtrées avant de les traiter pour être sûr qu'elles soient bien dans le format de ce que tu attends

PHP a des fonctions pour appliquer des filtres qui fonctionnent très bien :
https://php.net/filter_var
https://php.net/filter_input
http://php.net/manual/fr/filter.filters.php

Au niveau de tes requêtes SQL, il est préférable d'utiliser des requêtes préparées, ça rend impossible toute injection :
http://php.net/manual/fr/pdo.prepared-statements.php
Quand tout le reste a échoué, lisez le mode d'emploi...