Bonjour, j'aurais une petite question à vous poser, est-ce que ce code dans le .htaccess , suffirais à bloquer une possible injection SQL via l'url ?

RewriteEngine on
Options +FollowSymlinks
RewriteCond %{QUERY_STRING} (.*)DECLARE(.*)@(.*) [NC,OR]
RewriteCond %{QUERY_STRING} (.*)SELECT(.*)FROM(.*) [NC,OR]  
RewriteCond %{QUERY_STRING} (.*)DELETE(.*)FROM(.*) [NC,OR]
RewriteCond %{QUERY_STRING} (.*)ALTER(%20){1,}TABLE(.*) [NC,OR]
RewriteCond %{QUERY_STRING} (.*)INSERT(%20){1,}INTO(.*) [NC,OR]
RewriteCond %{QUERY_STRING} (.*)UPDATE(.*)SET(.*)(WHERE){0,}(.*) [NC,OR]
RewriteCond %{QUERY_STRING} (.*)DROP(.*) [NC]
RewriteRule (.*) %{QUERY_STRING} [F]

5 réponses


Salut,

ca ne répond pas vraiment à ta question, mais pourquoi n'utilises tu pas mysql_real_escape_string()?

*** mysql_real_escape_string() appelle la fonction mysql_escape_string() de la bibliothèque MySQL qui ajoute un anti-slash aux caractères suivants : NULL, \x00, \n, \r, \, ', " et \x1a. ***

mysql_real_escape_string()

++

tagcash
Auteur

En réalité vus que sais un .htaccess c'est pour filtrer les eventuels injection via URL, genre un mec trop con qui utiliserais des GET et aurais rien sécurisé derrière, bah grâce a ça, cela suffirais a empeché un hack ... enfin je sais pas si je m'exprime bien ^^

Ben il te suffit de passer $_GET'param'] par mysql_real_escape_string(), je comprend pas ce que tu veux faire.

tagcash
Auteur

Le truc spécifique que j'ai oublié de mentionner, c'est que imaginons que tu aies une huitantaine de site sous un CMS, c'est juste trop de boulot de sécurisé chaque GET ... alors c'est plus simple d'utilisé un htaccess générale pour tout les sites.

tu peux pas te débrouiller avec un foreach?