Nginx基于$document_uri的访问控制,变量$document_uri该变量等价于$uri,其实也等价于location匹配。

示例1: 当用户请求的url中包含/admin/时,直接返回403,注意:if结构中不支持使用allow和deny

if ($document_uri ~ "/admin/")
{
return 403;
} #1. www.xuliangwei.com/123/admin/1.html 匹配
#2. www.xuliangwei.com/admin123/1.html 不匹配
#3. www.xuliangwei.com/admin.php 不匹配

示例2: 请求的uri为/admin.php时返回403状态码,直接返回403,注意:if结构中不支持使用allow和deny

if ($document_uri = /admin.php)
{
return 403;
} #1. www.xuliangwei.com/admin.php 匹配
#2. www.xuliangwei.com/123/admin.php 不匹配

示例3: 请求的uri包含data或者cache目录并且是php时,返回403状态码,直接返回403,注意:if结构中不支持使用allow和deny

if ($document_uri ~ '/data/|/cache/.*\.php$')
{
return 403;
}
#1. www.xuliangwei.com/data/123.php 匹配
#2. www.xuliangwei.com/cache1/123.php 不匹配

nginx基于$request_uri访问控制,$request_uri比$docuemnt_uri多了请求的参数,主要是针对请求的uri中的参数进行控制。

示例1: \d{9,12}是正则表达式,表示9到12个数字,例如gid=1234567890就符号要求。

if ($request_uri ~ "gid=\d{9,12}")
{
return 403;
}
#1. www.xuliangwei.com/index.php?gid=1234567890&pid=111 匹配
#2. www.xuliangwei.com/gid=123 不匹配

Nginx基于$http_referer的访问控制,

背景:网站被黑挂马,搜索引擎收录的网页是有问题的,当通过搜索引擎点击到网站时,却显示一个博彩网站。

由于查找木马需要时间,不能马上解决,为了不影响用户体验,可以针对此类请求做一个特殊操作。

比如,可以把从百度访问的链接直接返回404状态码,或者返回一段html代码。

if ($http_referer ~ 'baidu.com')
{
return 404;
} #或者 if ($http_referer ~ 'baidu.com')
{
return 200 "<html><script>window.location.href='//$host$request_uri';</script></html>";
}

最新文章

  1. FineReport如何连接和使用MongoDB数据库
  2. 虚拟机VMware 12 Pro 永久许可证激活密钥
  3. oracle数据库相关知识点
  4. 手写json
  5. python 进程间共享数据 (二)
  6. 史上最全Vim快捷键键位图(入门到进阶)
  7. java实现给图片添加水印
  8. Android小项目之五 splash动画效果
  9. 今天,Java编程周末提高班(第一期)正式结束
  10. android通过服务实现消息推送
  11. 根据IP地址获得地理位置
  12. GIT 版本控制命令学习
  13. 修改非空表字段类型Oracle
  14. Java 中静态方法 实例方法 具体方法区别与联系
  15. android打包方法超过65k错误
  16. Gradle 1.12用户指南翻译——第二十五章. Scala 插件
  17. IDEA开发环境配置
  18. PHP配置文件详解php.ini
  19. JDK8中的并行流
  20. python 中关于descriptor的一些知识问题

热门文章

  1. flask的客户端服务端
  2. Logstash连接Elasticsearch异常
  3. css 固定图片
  4. (转)pgbouncer常用配置项详解
  5. woocommerce面包屑导航breadcrumb的修改
  6. tomcat启动后,跳转到项目指定页面
  7. twisted框架的使用和应用?
  8. 掌握Visual Studio断点
  9. ORA-25153错误及解决办法
  10. 可能是全网最好的MySQL重要知识点 | 面试必备