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

 更新时间:2019年07月22日 09:07:27   作者:Crazymagic  
这篇文章主要介绍了Nginx跨域访问场景配置和防盗链详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

跨域访问控制

跨域访问

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

不安全,容易出现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>

配置防盗链如果不是从 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

访问

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 完全卸载nginx以及安装的超详细步骤

    完全卸载nginx以及安装的超详细步骤

    由于之前下载太乱,找相关目录半天找不对位置,所以决定卸载nginx并重新安装,下面这篇文章主要给大家介绍了关于完全卸载nginx以及安装的超详细步骤,需要的朋友可以参考下
    2022-12-12
  • Nginx中的Gzip压缩配置介绍

    Nginx中的Gzip压缩配置介绍

    这篇文章主要介绍了Nginx中的Gzip压缩配置介绍,本文先是对这些指令做了讲解,然后给出一个配置示例,需要的朋友可以参考下
    2014-12-12
  • nginx禁止某个IP访问站点的设置方法

    nginx禁止某个IP访问站点的设置方法

    近期发现博客遭到某些人的恶意灌水,频繁地利用发帖机器人发表评论,给博客的管理带来诸多不便,搜索了一下资料,可以利用nginx的ngx_http_access_module 模块设置允许/禁止哪些ip或ip段访问站点。
    2010-12-12
  • Nginx本地配置SSL访问的实例教程

    Nginx本地配置SSL访问的实例教程

    当一个项目部署测试服后会遇到跨域、SSL证书、访问静态文件等各种问题,这个时候我们就可以采用Nginx来解决上述的问题,下面这篇文章主要给大家介绍了关于Nginx本地配置SSL访问的相关资料,需要的朋友可以参考下
    2022-05-05
  • nginx部署后css、js、图片等样式不加载问题的两种解决方案

    nginx部署后css、js、图片等样式不加载问题的两种解决方案

    这篇文章主要介绍了nginx部署后css、js、图片等样式不加载问题的两种解决方案,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-12-12
  • Nginx代理本地文件夹实现方式

    Nginx代理本地文件夹实现方式

    文章介绍了如何使用Nginx作为代理来访问本地文件夹,并通过修改nginx.conf文件来配置Nginx,启动Nginx后,可以通过startnginx.exe命令来启动服务,个人经验分享,希望能为读者提供参考
    2025-11-11
  • Nginx中间件入门指南

    Nginx中间件入门指南

    Nginx也是一个web服务器,能够支持正向代理(代理用户去访问服务器)、反向代理(代理服务器来让用户访问)、负载均衡(将用户的访问分发给服务器集群),这篇文章主要介绍了Nginx中间件入门指南,需要的朋友可以参考下
    2025-10-10
  • Nginx 配置反向代理使用 Google fonts 字体并开启 HTTP2/SSL 支持

    Nginx 配置反向代理使用 Google fonts 字体并开启 HTTP2/SSL 支持

    nginx作为web服务器一个重要的功能就是反向代理。当然你也可以使用nginx配置正向代理,本是介绍如何配置nginx的反向代理。nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理。
    2017-04-04
  • nginx日志过大问题解决

    nginx日志过大问题解决

    nginx默认的日志在logs/access.log,并且是一直累加写入,时间长了就会非常大,本文主要介绍了nginx日志过大问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • Nginx 平滑升级的实现(拒绝服务漏洞)

    Nginx 平滑升级的实现(拒绝服务漏洞)

    本文主要介绍了Nginx 平滑升级的实现(拒绝服务漏洞),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02

最新评论