关于防盗链与跨域访问
来源:互联网 发布:环保部网络举报平台 编辑:程序博客网 时间:2024/06/06 10:02
关于防盗链与跨域访问
最近用阿里云的时候发现一些防盗链与跨域访问的一些坑,填完坑之后稍微整理一下。
防盗链
防盗链是利用浏览器Http请求头Referer
,告诉服务器谁访问资源,由服务器作判断,如果符合一定规则则返回数据,否则返回403。
Flash player跨域访问
Flash player访问指定资源之前,访问根URL下的crossdomain.xml
,例如访问资源http://test.com/path/to/a.m3u8
之前会访问http://test.com/crossdomain.xml
,由Flash player解析并判断是否可以进行跨域访问。
crossdomain.xml
的范例
<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy> <site-control permitted-cross-domain-policies="master-only"/> <allow-access-from domain="*.yy.com"/> <allow-access-from domain="*.yypm.com"/> <allow-access-from domain="*"/> <allow-http-request-headers-from domain="*.yy.com" headers="SOAPAction"/></cross-domain-policy>
浏览器跨域访问
具体参照http://www.ruanyifeng.com/blog/2016/04/cors.html
Flash player与OSS的跨域访问
如果需要Flash player跨域访问OSS里面的视频资源,需要设置:
1. 编写crossdomain.xml,放在bucket的根目录下
2. 将域名添加到防盗链配置中(如果防盗链配置为空,则忽略)
3. 将域名规则添加到跨域(Cors)配置规则中(如果规则列表为空,则忽略)
OSS与CDN的防盗链
OSS和CDN的防盗链配置是分离的。配置可以分为下面几种情况:
1. 只配置OSS
安全性一般,可能会通过CDN的域名扫描到资源,而且会因CDN的缓存配置导致有时候200有时候403的情况。
2. 只配置CDN
安全性一般,可能会通过OSS的域名扫描到资源。
3. OSS和CDN都配置但不保持一致
很容易混乱,出问题很难查,不建议
。
4. OSS和CDN都配置并且保持一致
这是最安全的做法,但保持一致成本较高
。
总的来说,1和2的安全性是一致的,所以如果安全性不高选择2,安全性高则选择4。
OSS与CDN的跨域配置
OSS和CDN的跨域配置是分离的。配置可以分为下面几种情况:
1. 只配置OSS
安全性一般,可能会通过CDN的域名扫描到资源,而且这样做会因CDN的缓存配置导致有时候200有时候403的情况。
2. 只配置CDN
安全性一般,可能会通过OSS的域名扫描到资源。
3. OSS和CDN都配置但不保持一致
很容易混乱,出问题很难查,不建议
。
4. OSS和CDN都配置并且保持一致
这是最安全的做法,但保持一致成本较高
。
总的来说,1和2的安全性是一致的,所以如果安全性不高选择2,安全性高则选择4。
- 关于防盗链与跨域访问
- 关于Java防盗链
- 关于防盗链
- 关于Java防盗链
- 设置防盗链,访问控制
- 配置防盗链、访问控制
- xmlhttp与防盗链
- Referer与防盗链
- nginx Location,rewrite,防盗链,禁止访问
- rewrite 防盗链 和限制ip 访问
- [Nginx]用Nginx实现与应用结合的访问控制 - 防盗链
- referer头与防盗链
- 图片分享与防盗链
- Referer与图片防盗链
- HTTP协议之防盗链与反防盗链
- HTTP协议之防盗链与反防盗链
- 防盗链的基本原理与实现
- 防盗链的基本原理与实现
- java(一)-封装
- 格式化名字
- jquery相关笔记
- DBONE
- ubuntu 16.04 安装PyQt4
- 关于防盗链与跨域访问
- 欢迎使用CSDN-markdown编辑器
- 無線網路新趨勢–漫談 802.11ac 新協定
- 走进cxf
- 【矩阵】RQ/QR 分解
- [Hadoop]MapReducer工作过程
- IntelliJ IDEA 运行 Maven 项目
- 数字天堂HBuilder+MUI(五)基于native.js的文件系统管理功能实现
- 一道有趣的变量运算问题