文档章节

Nginx 手记(七)跨域访问与防盗链

神奇Sam
 神奇Sam
发布于 2017/08/30 14:45
字数 468
阅读 199
收藏 0
点赞 0
评论 0

一、跨域访问

场景:访问 http://www.a.com 时候,返回的页面通过ajax去访问 http://www.b.com 获取资源,这种称之为跨域访问。
浏览器默认禁止跨域访问,原因:不安全,容易出现CSRF攻击!

Nginx 打开跨域访问

实现原理:

浏览器通过读取判断服务端响应的头信息中的 Access-Control-Allow-Origin 来决定是否允许跨域访问。如果服务端配置了 Access-Control-Allow-Origin 允许跨域访问,客户端则会遵循服务端配置。
1、配置语法
#添加头信息
语法:add_header name value [always];
默认值:无
上下文:http,server,location,if in location
2、配置示例
在server中配置 vim conf.d/default.conf
location ~ .*\.(htm|html)$ {
    #add_header Access-Control-Allow-Origin *;  #允许所有站点跨域访问
    add_header Access-Control-Allow-Origin http://www.sam.com;  #只允许http://www.sam.com 跨域访问
    add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
    root /opt/site/sam;
}

二、防盗链

目的:保证信息安全,防止资源被盗用,避免服务器无效的性能损耗。

简单实现

基于http_refer防盗链配置模块。http_refer 存在于http请求头信息中,在nginx中可以通过 $http_referer 获取该变量。
简单配置
#匹配图片资源
location ~ .*\.(jpg|gif|png)$ {
    #配置允许访问的refer信息条件
    #none:   允许没有带refer信息进行访问
    #blocked:允许refer信息不是标准的http协议信息的请求进行访问
    #ip或域名:允许该ip或域名进行访问
    #使用正则:允许符合正则的请求进行访问
    valid_referers none blocked 192.168.0.100 ~/google\./;
    if($invalid_referer){   #如果refer无效不符合条件的,则直接返回403
        return 403;
    }
    root /opt/site/sam/images;
}
测试
# 使用curl命令测试
# -e 指定其refer信息
[root@sam ~]# curl -e "http://www.a.com" -I http://192.168.0.100/test.png
HTTP/1.1 403 Forbidden
Server: nginx/1.12.1
Date: Wed, 19 Jul 2017 17:44:00 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive

© 著作权归作者所有

共有 人打赏支持
神奇Sam
粉丝 18
博文 41
码字总数 27998
作品 0
广州
程序员
Nginx服务之防盗链功能

Nginx防盗链 一.原理 二.配置指令 三.实例配置 一.原理 盗链是一种损害原有网站合法利益,给原网站所在服务器造成额外负担的非法行为。要采取防盗链的措施,首先需要了解盗链的实现原理。 客...

两袖春风 ⋅ 2016/11/16 ⋅ 0

第五章:nginx静态+代理+缓存+负载均衡详解

一、静态资源WEB服务 非服务器动态运行生成的文件 配置语法-文件读取 配置语法-tcp_noposh(sendfile开启时,提高网络传输效率) 配置语法-tcp_nodelay 配置语法-压缩 扩展Nginx压缩模块 ht...

FantJ ⋅ 01/02 ⋅ 0

【PDF分享】Nginx 常见应用技术指南[Nginx Tips] 第二版.pdf

文档目录: 一、Nginx 基础知识 二、Nginx 安装及调试 三、Nginx Rewrite 四、Nginx Redirect 五、Nginx 目录自动加斜线: 六、Nginx Location 七、Nginx expires 八、Nginx 防盗链 九、Nginx...

鉴客 ⋅ 2010/09/12 ⋅ 4

Nginx系列-5.配置Nginx的防盗链

Nginx系列-5.配置Nginx的防盗链 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux、Nginx、MySQL、PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日...

ngle ⋅ 06/08 ⋅ 0

Nginx防止盗链

防 止盗链不仅能保护版权,又节约了不少流量。最近和bsdmap交流了下,听说他们通过防盗链节约了近1/3的图片流量。nginx的防盗链设置还是比较简 单的,可以分为普通防盗链和ip/cookie based防...

刘纪君 ⋅ 2013/03/31 ⋅ 0

nginx防止盗链

防止盗链不仅能保护版权,又节约了不少流量。最近和bsdmap交流了下,听说他们通过防盗链节约了近1/3的图片流量。nginx的防盗链设置还是比较简单的,可以分为普通防盗链和ip/cookie based防盗...

jing31 ⋅ 2010/08/12 ⋅ 1

nginx系统真正有效的图片防盗链完整设置详解

关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的彻底的防盗链! 一般,我们做好防盗链之后其他网站盗链的本站图片就会全部失效无法显...

gutaotao1989 ⋅ 2017/08/25 ⋅ 0

nginx 防盗链

一篇很好的nginx防盗链文章,复制过来学习,链接地址:http://4593973.blog.51cto.com/4583973/1537963 我们经常会看到在浏览某一图片时会弹出一“403权限禁止”错误,这说明有可能正在浏览的...

飞来的翅膀 ⋅ 2017/07/21 ⋅ 0

Nginx配置:防盗链、访问控制、解析PHP以及代理

一、Nginx防盗链 防盗链是指一个网站的资源(图片或附件)未经允许在其它网站提供浏览和下载,尤其热门资源的盗链,对网站带宽的消耗非常大,设置防盗链以节省资源。 1、修改虚拟主机配置文件 ...

BatmanLinux ⋅ 03/15 ⋅ 0

企业级Web Nginx 服务优化(5)

企业级Web Nginx 服务优化(5) 资源防盗链的技术: 1.1.1什么是资源盗链? 简单的说啊,就是某些不法的网站,通过在其自身网站程序里未经许可非法调用其他网站的资源,然后在自己的网站上显示...

余二五 ⋅ 2017/11/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Kubeflow实战系列:利用TFJob导出分布式TensorFlow模型

介绍 本系列将介绍如何在阿里云容器服务上运行Kubeflow, 本文介绍如何使用TfJob导出分布式模型训练模型。 第一篇:阿里云上使用JupyterHub 第二篇:阿里云上小试TFJob 第三篇:利用TFJob运行...

全部原谅 ⋅ 20分钟前 ⋅ 0

007. 深入JVM学习—老年代

老年代空间的主要目的是用于存储由Eden发送来的对象,一般在经历好几次“Minor GC”还会保存下来的对象,才会被复制到老年代,这样就可以存放更多的对象,同时在老年代中执行GC的次数也相对较...

影狼 ⋅ 21分钟前 ⋅ 0

常见的一些C#开源框架或者开源项目

原:https://blog.csdn.net/qq_27825451/article/details/70666044 Json.NET http://json.codeplex.com/ Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更......

whoisliang ⋅ 22分钟前 ⋅ 0

设计模式基本原理

刚开始接触编程这行的时候看过设计模式,当时感觉学这些模式没有太大的用处,当时也看不太懂。但是随着慢慢接触这一行,经过一段时间的编程以后,再回过头来看设计模式,发现设计模式的确是太...

王子城 ⋅ 26分钟前 ⋅ 0

阿里云全面支持IPv6!一文揽尽4位大咖精彩演讲

摘要: 自从去年11月以来,阿里巴巴高度重视数据中心的网络改造、云产品改造、应用及网络改造等多个维度,经过半年以来的建设,阿里云已经完成了域名解析等关键产品的分析,现在阿里云已经完...

传授知识的天使 ⋅ 36分钟前 ⋅ 0

windows Android sdk 配置

1、下载Android SDK,点击安装,直接默认路径即可! 下载地址:http://developer.android.com/sdk/index.html 2、默认路径安装后,安装完成,开始配置环境变量。 3、打开计算机属性——高级系...

阿豪boy ⋅ 39分钟前 ⋅ 0

bash shell script 简明教程

User <--> bash <--> kernel shell is not kernel or part of kernel various shells: tcsh, csh, bash, ksh find the using shell: echo $SHELL find all the shells: cat /etc/shells what......

mskk ⋅ 41分钟前 ⋅ 0

Service Mesh简史

William Morgan Service Mesh是一个相当新的概念,讲它的“历史”似乎有些勉强。就目前而言,Service Mesh已经在部分企业生产环境中运行了超过18个月,它的源头可以追溯到2010年前后互联网公...

好雨云帮 ⋅ 42分钟前 ⋅ 0

10个免费的服务器监控工具

监控你的WEB服务器或者WEB主机运行是否正常与健康是非常重要的。你要确保用户始终可以打开你的网站并且网速不慢。服务器监控工具允许你收集和分析有关你的Web服务器的数据。 有许多非常好的服...

李朝强 ⋅ 54分钟前 ⋅ 0

压缩工具之zip-tar

zip 支持目录压缩。使用yum安装zip包,使用yum安装unzip包 zip 1.txt.zip 1.txt #将1.txt文件压缩,新生成的压缩文件为1.txt.zip,原文件保留 zip -r 123.zip 123/ #-r对目录操作。将123/目录...

ZHENG-JY ⋅ 54分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部