【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • hive 数据类型_sv数据类型

    hive 数据类型_sv数据类型本篇来学习一下Hive中的数据类型,以及如何在HiveSQL中去处理这些数据类型。Hive的数据类型可以分为基本类型、字符串类型、日期与时间戳类型、集合类型,我们分别进行介绍:1、基…

    2022年9月21日
    2
  • 自动编码器—Autoencoder[通俗易懂]

    自动编码器—Autoencoder[通俗易懂]自动编码器DeepLearning最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重。自然地,我们就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征。自动编码器就是一种尽可能复现输入信号的神经网络。为了实现这种复现,自动编码器就

    2022年5月1日
    67
  • NOSQL(一)–Redis

    NOSQL(一)–Redis

    2021年11月26日
    37
  • leetcode 链表相加_数据结构与算法链表

    leetcode 链表相加_数据结构与算法链表给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。/** * Definition for singly-linked list. * struct ListNode { * int val; *

    2022年8月9日
    3
  • 深入理解iso七层模型_网络模型的七层结构

    深入理解iso七层模型_网络模型的七层结构ISO七层模型是国际标准化组织用于计算机或者通信系统间相互联系的标准体系.他是一个七层的,抽象的模型体.应用层(Application):网络服务与最终用户的一个接口。协议有:HTTPFTPTFTPSMTPSNMPDNSTELNETHTTPSPOP3DHCP表示层(PresentationLayer):数据的表示、安全、压缩。(

    2025年5月23日
    3
  • 网上常见的分享功能, 比如 点击分享到 人人 微博 空间 等都是怎么做的…

    网上常见的分享功能, 比如 点击分享到 人人 微博 空间 等都是怎么做的…

    2021年9月19日
    39

发表回复

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

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