温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Nginx跨域访问和防盗链如何配置

发布时间:2022-06-02 11:29:13 来源:亿速云 阅读:251 作者:iii 栏目:大数据

这篇文章主要介绍“Nginx跨域访问和防盗链如何配置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Nginx跨域访问和防盗链如何配置”文章能帮助大家解决问题。

跨域访问控制

跨域访问

Nginx跨域访问和防盗链如何配置

为什么浏览器禁止跨域访问

不安全,容易出现csrf攻击!

Nginx跨域访问和防盗链如何配置

如果黑客控制的网站b在响应头里添加了让客户端去访问网站a的恶意信息,就会出现csrf攻击

nginx如何配置跨域访问

add_header语法

  • syntax:add_header name value [always];

  • default:—

  • context:http, server, location, if in location

语法解释:

  • add_header name value [always];

  • name 表示响应头返回的key

  • value 表示响应头返回的key对应的value

  • add_header跨域配置

location ~ .*\.(htm|html)$ {
  add_header access-control-allow-origin *;
  add_header access-control-allow-methods get,post,put,delete,options;
  root /opt/app/code;
}

防盗链

防盗链目的

  • 防止资源被盗用。

  • 防止非正常用户访问,占用网站资源,影响网站性能,势必影响正常用户访问

基于http_referer防盗链配置模块

ngx_http_referer_module模块用于阻止对“referer”头字段中具有无效值的请求访问站点。

举例

valid_referers none blocked server_names
 
        *.example.com example.* www.example.org/galleries/
 
        ~\.google\.;
 
if ($invalid_referer) {
 
  return 403;
 
}

referer_hash_bucket_size语法

  • syntax: referer_hash_bucket_size size;  

  • default: referer_hash_bucket_size 64;

  • context: server, location

语法解释:

referer_hash_bucket_size size;表示设置有效引用散列表的存储区大小。

referer_hash_max_size 语法

  • syntax: referer_hash_max_size size;

  • default: referer_hash_max_size 2048;

  • context: server, location

语法解释:

referer_hash_max_size size;表示设置有效引用者哈希表的最大大小。

valid_referers语法

  • syntax: valid_referers none | blocked | server_names | string ...;

  • default: —

  • context: server, location

语法解释:

  • valid_referers none | blocked | server_names | string ...;

  • none表示请求标头中缺少“referer”字段;

  • blocked表示“referer”字段出现在请求标头中,但其值已被防火墙或代理服务器删除; 这些值是不以“http://”或“https://”开头的字符串;

  • server_names 表示“referer”请求头字段包含一个服务器名称;

  • string 表示定义服务器名称和可选的uri前缀。 服务器名称的开头或结尾可以包含“*”。 在检查期间,“referer”字段中的服务器端口被忽略;

防盗链小案例

touch test_referer.html (在 /op/app/code 目录下)

<html>
<head>
  <meta charset="utf-8">
  <title>imooc1</title>
</head>
<body style="background-color:red;"><br data-filtered="filtered">   <h1>张彪</h1>
  <img src="http://192.168.1.112/wei.png"/>
</body>
</html>

Nginx跨域访问和防盗链如何配置

配置防盗链如果不是从 www.zhangbiao.com 域名转来的就会报错

location ~ .*\.(jpg|gif|png)$ {
  valid_referers none blocked www.zhangbiao.com;
  if ($invalid_referer) {
    return 403;
  }
  root /opt/app/code/images;
}
location ~ /test_refer.html {
  root /opt/app/code;
 
}

访问

http://192.168.1.112/test_refer.html

Nginx跨域访问和防盗链如何配置

访问

http://www.zhangbiao.com/test_refer.html

Nginx跨域访问和防盗链如何配置

允许其他网站访问自己网站资源配置

Nginx跨域访问和防盗链如何配置

关于“Nginx跨域访问和防盗链如何配置”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI