nginx拦截非法字符(nginx禁止url访问特定字符)

##nginx拦截非法字符,nginx禁止url访问特定字符,nginx过滤url访问
参考代码一
#前缀为无限,后面的精准屏蔽字符123
if($request_uri~*"123"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
参考代码二
#前缀为index.php,后面的精准屏蔽字符123
if($request_uri~*"/index.php\123"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
参考代码三
location/{
#当访问的url中含有/%#时返回404
if($request_uri~*"/%#"){
return404;
}
#当访问url的后面带有?的链接返回404
if($request_uri~*^/a/m/(.*)\.html\?(.*)$){
return404;
}
}
注释
过滤链接中的?在nginx的配置文件中写入
location/{#当访问的url中含有/%#时返回404if($request_uri~*"/%#"){return404;}#
当访问url的后面带有?的链接返回404if($request_uri~*^/a/m/(.*)\.html\?(.*)$){return404;
nginx正则表达式
=开头表示匹配,如A中只匹配根目录结尾的请求,后面不能带任何字符串。
^~开头表示uri以某个常规字符串开头,不是正则匹配
~开头表示区分大小写的正则匹配;
~*开头表示不区分大小写的正则匹配
.*.匹配任意字符,*匹配数量0到正无穷;
\.\转义,匹配.
/通用匹配,如果没有其它匹配,任何请求都会匹配到
本站测试代码,小白一键复制(注:需要自行根据网站程序定义)**
宝塔为例:/www/server/panel/vhost/nginx/你的网站域名.conf,复制代码点击保存
#前缀为无限,后面的是屏蔽字符
if($request_uri~*"../../../../../../"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为无限,后面的是屏蔽字符
if($request_uri~*";"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为无限,后面的是屏蔽字符
if($request_uri~*"&"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为无限,后面的是屏蔽字符
if($request_uri~*"base64"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为index.php屏蔽,后面的是屏蔽字符
if($request_uri~*"/index.php\&"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为index.php屏蔽,后面的是屏蔽字符
if($request_uri~*"/index.php\?"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为index.php屏蔽,后面的是屏蔽字符
if($request_uri~*"/index.php\;"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为index.php屏蔽,后面的是屏蔽字符
if($request_uri~*"/index.php\="){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为index.php屏蔽,后面的是屏蔽字符
if($request_uri~*"/index.php\="){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为index.php屏蔽,后面的是屏蔽字符
if($request_uri~*"/index.php\_"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为index.php屏蔽,后面的是屏蔽字符
if($request_uri~*"/index.php\./"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为index.php屏蔽,后面的是屏蔽字符
if($request_uri~*"/index.php\:"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为index.php屏蔽,后面的是屏蔽字符
if($request_uri~*"/index.php\base64"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为index.php屏蔽,后面的是屏蔽字符
if($request_uri~*"/index.php\%"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为index.php屏蔽,后面的是屏蔽字符
if($request_uri~*"/index.php\wp-content"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
#前缀为index.php屏蔽,后面的是屏蔽字符
if($request_uri~*"/index.php\;amp"){
return403"I'verecordedyouripWaittocheckthewatermeter";
}
##附带:nginxql语句过滤、文件注入禁止、溢出攻击过滤、spam字段过滤、user-agents头过滤
sql语句过滤
if($request_uri~*"(cost\()|(concat\()"){
return444;
}
if($request_uri~*"[+|(%20)]union[+|(%20)]"){
return444;
}
if($request_uri~*"[+|(%20)]and[+|(%20)]"){
return444;
}
if($request_uri~*"[+|(%20)]select[+|(%20)]"){
return444;
}
文件注入禁止
set$block_file_injections0;
if($query_string~“[a-zA-Z0-9_]=http://”){
set$block_file_injections1;
}
if($query_string~“[a-zA-Z0-9_]=(\.\.//?)+”){
set$block_file_injections1;
}
if($query_string~“[a-zA-Z0-9_]=/([a-z0-9_.]//?)+”){
set$block_file_injections1;
}
if($block_file_injections=1){
return444;
}
溢出攻击过滤
set$block_common_exploits0;
if($query_string~“(<|%3C).*script.*(>|%3E)”){
set$block_common_exploits1;
}
if($query_string~“GLOBALS(=|\[|\%[0-9A-Z]{0,2})”){
set$block_common_exploits1;
}
if($query_string~“_REQUEST(=|\[|\%[0-9A-Z]{0,2})”){
set$block_common_exploits1;
}
if($query_string~“proc/self/environ”){
set$block_common_exploits1;
}
if($query_string~“mosConfig_[a-zA-Z_]{1,21}(=|\%3D)”){
set$block_common_exploits1;
}
if($query_string~“base64_(en|de)code\(.*\)”){
set$block_common_exploits1;
}
if($block_common_exploits=1){
return444;
}
spam字段过滤
set$block_spam0;
if($query_string~“\b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)\b”){
set$block_spam1;
}
if($query_string~“\b(erections|hoodia|huronriveracres|impotence|levitra|libido)\b”){
set$block_spam1;
}
if($query_string~“\b(ambien|blue\spill|cialis|cocaine|ejaculation|erectile)\b”){
set$block_spam1;
}
if($query_string~“\b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)\b”){
set$block_spam1;
}
if($block_spam=1){
return444;
}
user-agents头过滤
set$block_user_agents0;
if($http_user_agent~“Wget”){
set$block_user_agents1;
}
#DisableAkeebaRemoteControl2.5andearlier
if($http_user_agent~“IndyLibrary”){
set$block_user_agents1;
}
#Commonbandwidthhoggersandhackingtools.
if($http_user_agent~“libwww-perl”){
set$block_user_agents1;
}
if($http_user_agent~“GetRight”){
set$block_user_agents1;
}
if($http_user_agent~“GetWeb!”){
set$block_user_agents1;
}
if($http_user_agent~“Go!Zilla”){
set$block_user_agents1;
}
if($http_user_agent~“DownloadDemon”){
set$block_user_agents1;
}
if($http_user_agent~“Go-Ahead-Got-It”){
set$block_user_agents1;
}
if($http_user_agent~“TurnitinBot”){
set$block_user_agents1;
}
if($http_user_agent~“GrabNet”){
set$block_user_agents1;
}
if($block_user_agents=1){
return444;
}
}
自动防护
if($request_uri~*\.(htm|do)\?(.*)$){
set$req$2;
}
if($req~*"(cost\()|(concat\()"){
return503;
}
if($req~*"union[+|(%20)]"){
return503;
}
if($req~*"and[+|(%20)]"){
return503;
}
if($req~*"select[+|(%20)]"){
return503;
}

版权声明
本文来源于网络,仅代表作者观点,不代表好东西立场,如有侵权,请联系站长删除