【Nginx-利用Referer防盗链】解决网站被可疑链接调取接口

【Nginx-利用Referer防盗链】解决网站被可疑链接调取接口

这两天网站访问速度变慢,查看nginx日志会有很多的大量请求带有可疑的referer,这些referer经过访问后都是短信平台,然后进行调用了我们网站的验证码接口
查看nginx日志
在这里插入图片描述
Nginx-利用Referer防盗链
语法:

1、ngx_http_referer_module模块:
用来阻止Referer首部无有效值的请求访问,可防止盗链
2、valid_referers none|blocked|server_names|string ...;
定义referer首部的合法可用值,不能匹配的将是非法值
none:请求报文首部没有referer首部
blocked:请求报文有referer首部,但无有效值
server_names:referer首部中包含本主机名
arbitrary_string:任意字符串,但可使用*作通配符
regular expression:被指定的正则表达式模式匹配到的字符串,要使用~开头,例如: ~.*.baidu.com


示例:

server {
    listen       80;
    server_name  XX.XX.XX.XX;
  
    location / {
     XXX
      XXXX
      XXX
       valid_referers none blocked server_names *.XXX.com;  #写入允许的referers
       if ($invalid_referer) {
         #盗链时返回403
         return 403;
       }

    }
vim test.conf 
server {
   
      listen 443 ssl;
      listen 80 ;
      server_name www.magedu.org;
      root /data/ssl;
      ssl_certificate /etc/nginx/conf.d/ssl/magedu.org.crt;
      ssl_certificate_key /etc/nginx/conf.d/ssl/magedu.org.key;
      ssl_session_cache shared:sslcache:20m;
      ssl_session_timeout 10m;
      valid_referers none block server_names *.magedu.org  ~\.google\. ~\.baidu\.;
      if ($invalid_referer) {
   
           return 403 "Forbidden Access";
          
}

开启之后进行检查并重启nginx

nginx -t
nginx -s reload

查看nginx日志可疑的网站已经被拦截状态403
在这里插入图片描述
友情提示: 在写入允许的valid_referers的时候记得把可信的网址写进去,避免有的用户通过百度、搜狗、360以及其他正规平台进行搜索后进行点击无法访问
举例:

valid_referers  none blocked server_names *.sogou.com  *.so.com *.baidu.com;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101809.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 面试官,不要再问我“Java虚拟机类加载机制”了

    面试官,不要再问我“Java虚拟机类加载机制”了关于Java虚拟机类加载机制往往有两方面的面试题:根据程序判断输出结果和讲讲虚拟机类加载机制的流程。其实这两类题本质上都是考察面试者对Java虚拟机类加载机制的了解。面试题试水现在有这样一道判断程序输出结果的面试题,先看看打印的结果是什么?publicclassSuperClass{static{System.out.println(“SuperCla…

    2022年5月24日
    34
  • 使用EDU邮箱申请JetBrains学生包免费使用一年JetBrains全家桶

    使用EDU邮箱申请JetBrains学生包免费使用一年JetBrains全家桶写在最前,使用EDU邮箱申请JetBrains学生包可以免费使用一年JetBrains全家桶欢迎光顾本人的博客,以后会经常记录生活点滴,学习工作所见1.首先你需要一个EDU邮箱JetBrains学生包的申请很简单,所以国内的EDU邮箱也可以.2.进去JetBrains官网注册账号,这个邮箱可以自己随便选,用自己的邮箱就可以.!之后会给你的邮箱发送一个验证邮件,点击激活…

    2022年7月25日
    24
  • 在线数据库设计工具-toolfk程序员在线工具网

    在线数据库设计工具-toolfk程序员在线工具网本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果。ToolFk还支持BarCode条形码在线生成、QueryList采集器、PHP代码在线运行、PHP混淆、加密、解密、Python代码在线运行、JavaScript在线运行、YAML格式化…

    2022年7月11日
    83
  • layoutSubviews和drawRect

    layoutSubviews和drawRectLayoutSubviews    子类可以重写此方法,因为需要更精确执行他们子视图的布局。只有当autoresizing和基于约束的行为的子视图不提供你想要的行为,应重写此方法。该方法不应直接调用。如果你想要强制布局更新,下一次绘图更新之前 应当反向调用setNeedsLayout方法,如果您想要立即更新您的视图的布局,请调用layoutIfNeeded方法。

    2022年7月15日
    14
  • python中if判断语句的用法_Python if判断语句的用法详细介绍[通俗易懂]

    python中if判断语句的用法_Python if判断语句的用法详细介绍[通俗易懂]1、if条件语句语法if条件:条件成立执行的代码1条件成立执行的代码2……2、快速体验if条件语句下面通过一个实例来体验if条件语句#条件成立执行代码1和2,条件不成立时执行代码3ifTrue:#条件成立print(‘条件成立执行的代码1’)print(‘条件成立执行的代码2’)else:#条件不成立print(‘条件成立执行的代码3’)#下方的代码没有缩进到if语句块,所以…

    2022年9月26日
    0
  • javascript uint8数组和uint32之间的转换

    javascript uint8数组和uint32之间的转换低位在前,高位在后functionintTobytes(value){vara=newUint8Array(4)a[3]=(value>>24)&0xFFa[2]=(value>>16)&0xFFa[1]=(value>>8)&0xFFa[0]=value

    2022年9月3日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号