Zola2 // Tout // Rien // Surtout Rien

Protection injection SQL

février6

Le piratage de site web se fait le plus souvent via des injections SQL.

Il existe plusieurs solutions pour se protéger contre ce genre d’attaques.

La première est simple suffit de bien coder ses requêtes et de protéger les variables qu’on intègre.

  • Toujours utiliser la fonction : « mysql_real_escape_string » :
$requete="SELECT champ 
FROM table
WHERE id='".mysql_real_escape_string($variable)."'";
  • Ne pas faire de « SELECT * »
  • Si vous chercher uniquement un enregistrement dans une table ajouter à la fin « LIMIT 0,1 »
  • Si vous utiliser une variable numérique dans une requête vérifier qu’elle est vraiment numérique, via les différentes fonctions : is_numeric(), is_int(), is_integer(), …
  • tronquer les variables, si vous savez que la variable que vous intégrer dans votre requête ne dépasse par exemple jamais 10 caractères : substr($variable,0,10
  • On peux aussi utiliser un fichier .htaccess, exemple :

RewriteEngine On
RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
RewriteCond %{QUERY_STRING} ^(.*)(%3C|<)/?script(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=)?javascript(%3A|:)(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)document\.location\.href(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)base64_encode(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)GLOBALS(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)_REQUEST(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(SELECT|INSERT|DELETE|CHAR\(|UPDATE|REPLACE|LIMIT)(.*)$
RewriteRule (.*) - [F]
posted under Actualités

Email will not be published

Website example

Your Comment:

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.