我是靠谱客的博主 知性棉花糖,最近开发中收集的这篇文章主要介绍Nginx对请求的超严格限制配置,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

下面的配置中,应对需求。

1、过滤[java、curl、WMFSDK]开头的UA,不区分大小写。

2、符合AppleCoreMedia、iPhone、iPad、Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)、Apache-HttpClient/UNAVAILABLE (java 1.4)

3、UAreferer 可以为空。

PS:需求看似复杂,拆分来看,也不是很麻烦。。关键要静下心来搞。。

Nginx以为不支持else所以这里要使用else功能就要自定义变量拼接,然后处理。

location /resource/ {

  #error_aua 0(ua right) 1(ua error)

  #error_ua 0(ua right) 1(ua error)

  #error_rf 0(refer right) 1(referer error)

  #UA范围值
  set $error_aua 0;

  #UA白名单值
  set $error_ua 0;

  #referer白名单值
  set $error_rf 0;

  #referer拼接值
  set $error_req "";

  #UA判断拼接值 
  set $error_uas "";
  if ($http_user_agent ~* "WMFSDK|Java|curl") {
    set $error_aua 1;
  }
  if ( $http_user_agent !~* "(AppleCoreMedia|iPhone|iPad|(^Mozilla/4.0s{1}(compatible;s{1}MSIEs{1}6.0;s{1}Windowss{1}NTs{1}5.1;s{1}SV1)$)|(Apache-HttpClient/UNAVAILABLEs{1}(javas{1}1.4)$))" ) {
    set $error_ua 1;
  }
  if ( $http_user_agent = "" ) {
    set $error_ua 0;
  }
  set $error_uas $error_aua$error_ua;
  if ( $error_uas = "11" ) {
    return 403;
  }
  valid_referers none blocked soulassassin.tk 192.168.36.20 192.168.35.32 192.168.36.54  192.168.36.68;
  if ( $invalid_referer ) {
    set $error_rf 1;
  }
  set $error_req $error_ua$error_rf;
  if ( $error_req = "11" ){
    return 403;
  }
  root /data/;
}


转载于:https://www.cnblogs.com/AlienGhost/archive/2012/05/31/2528977.html

最后

以上就是知性棉花糖为你收集整理的Nginx对请求的超严格限制配置的全部内容,希望文章能够帮你解决Nginx对请求的超严格限制配置所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部