首页 > 网站 > Nginx > 正文

Nginx跨域访问场景配置和防盗链详解

2024-08-30 12:24:20
字体:
来源:转载
供稿:网友

跨域访问控制

跨域访问

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

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

如果黑客控制的网站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>            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表