怎样利用APACHE REWRITE 的规则预防SQL 注入

怎样利用APACHE REWRITE 的规则预防SQL 注入

怎样利用APACHE REWRITE 的规则预防SQL 注入

有如下 规则:
<Directory "/home/webadmddeamon/wwwroot/">
        RewriteEngine On
        RewriteBase /
        RewriteCond %{QUERY_STRING} %20and%20 [NC]
        RewriteCond %{QUERY_STRING} select%20 [NC]
        RewriteRule ^(.*) http://mylove.com.cn/error.html [R]
     </Directory>



有些能被 302定向:
59.173.167.57 - - [26/Dec/2008:02:23:08 +0800] "GET [url]http://mylove.com.cn/manual/help2.php?id=1'%20and%20[/url](select%20ascii(substr(database(),29,1))%20%20)%3E255%20and%20'1'='1 HTTP/1.1" 302 796
但还是被 通过 了。
59.173.167.57 - - [26/Dec/2008:01:42:58 +0800] "GET http://mylove.com.cn/AllGame.php ... 1%BF%A8%D6%B1%B4%A2%20and%20(select%20ascii(substr(database(),6,1))%20%20)%3E287%20and%201=1 HTTP/1.1" 200 3925 "-" "pangolin/1.2"

不知道 为什么呢,
2条RewriteCond 应该是同时满足这2个条件,是不是有先后顺序?
有较好的规则吗
你这个思路倒是不错,至少我从来没往这方面想。我回头做做试验
理论上应该用一条RewriteCond  然后把关健词都写进去 用| 分割下

RewriteCond %{REQUEST_URI} ^.*(and|or|select)$  这样

会不会误判,,,例如正常的URL会有OR的字符时呢。
所以这个要用正则来判断啊