用 Amazon S3 和 Cloudfront 做防盗链
前言,因为一个网站上面的部分静态图片当时放在了 aws 的 S3 上面,后来陆续发现有信用卡扣款,查看了 aws 的账单发现,属于S3 和 Cloudfront 的流量导致。
因为之前没有设置访问权限,也就意味着图片链接被人拿走在任意网站或者其他地方随处访问,总所周知 aws 的速度很快,所以导致流失流量也比较快。
所以就相当了采用防盗链来防止资源外链,这里顺便说一下,S3 防盗链设置不同于国内比如说阿里云的 os ,以及七牛等类似的对象存储,因为国内都是直接可以采用选项来设置的,就是说很非常简单方便,但是 S3 不同,他需要自己编写存储桶策略来编写。
还有顺便提下,全球大部分做云计算的基本都是抄袭 aws ,包括功能啊,文档啊等,这也就是为什么 aws 目前是全球云计算份额最大的企业了。
设置参考网站:https://s3browser.com/working-with-amazon-s3-bucket-policies.php
阅读了部分 aws 的部分策略文档,真心感叹强大。
接下来开始设置:

进入存储桶,然后先选择‘阻止公共访问权限’至右边的编辑将阻止全部公共访问权限打开勾选。
然后选择选择存储桶策略填入以下内容:
{
"Version": "2012-10-17",
"Id": "PreventHotLinking",
"Statement": [
{
"Sid": "Allow get requests originated from www.xx.com xx.com www.cc.com and cc.com",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::buckets/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://www.xx.com/*",
"http://xx.com/*",
"https://www.xx.com/*",
"https://xx.com/*",
"http://www.cc.com/*",
"http://cc.com/*",
"https://www.cc.com/*",
"https://cc.com/*"
]
}
}
}
]
}
官方只给出了不带 https 的配额范例,我想着因为我的站点全部都带 https,于是我就多加了几个域名在里面。
然后在进行资源测试访问,访问过的因为带缓存,所以请清除缓存测试。
资源链接打开会出现以下错误:

以上是一个简单的防盗链策略设置。
智能推荐
seaborn调用load_dataset函数时出现URLError
seaborn调用load_dataset函数时出现URLError: <urlopen error [Errno 11004] getaddrinfo failed> 在使用seaborn调用load_detaset函数时一直出现错误 出现 URLError: <urlopen error [Errno 11004] getaddrinfo failed> 解决办法。 查...
Sa-Token 一个轻量级Java权限认证框架
文章目录 Sa-Token 简介 基础使用 框架集成 添加Sa-Token依赖 配置Sa-Token 配置项解读 sa-token cookie 单点登录 OAuth 2.0 登录认证 认证流程 登录与注销 其他操作语句 权限认证 获取当前账户的权限码集合 权限认证 角色认证 全局异常捕获 权限通配符 踢人下线 强制注销 踢人下线 账号封禁 注解鉴权 1.注册注解拦截器 2.使用注解鉴权 路由鉴权...
平时瞎折腾之Docker
平时瞎折腾之Docker 由于平时在学校学习和使用的数据库大多数都是使用的mysql,但是进入工作中时,由于不同的项目会使用到像Oracle,Sql Server这样的数据库操作。虽说sql的基础语法都差不多,但具体使用起来还是有很大的差异。于是就想着装个Oracle数据库学习一下,但是由于我之前把电脑换成了Mac,这就很让人头疼。之前的解决方法是使用parallels安装windows虚拟机,然...
构建虚拟Web主机(基于域名、端口和IP)
文章目录 虚拟主机简介 基于域名的虚拟主机 基于端口的虚拟主机 基于IP的虚拟主机 虚拟主机简介 ●虚拟Web主机 在同一台服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机 ●httpd支持的虚拟主机类型 基于域名的虚拟主机 基于IP地址的虚拟主机 基于端口的虚拟主机 (基于域名和端口的生产环境用的多) 基于域名的虚拟主机 示例:构建2个虚拟Web站点 www.test.co...
使用C#操作EXCEL文件
文章目录 1.在项目中引用Microsoft Excel 12.0 Object Lib这个COM组件,如图所示。 2. 在命名空间中添加引用,完整的引用如图所示。 3.打开、关闭Excel文件 4. 获取工作表 5. 删除工作表 6. 对EXCEl工作表的行列进行操作 7. 对EXCEL文档中的单元格进行操作 完整代码 1.在项目中引用Microsoft Excel 12.0 Object Li...
猜你喜欢
Python学习-Python编程环境搭建
ps:以下内容纯属上课学习的笔记整理,不做商业用途,无侵犯版权的想法。 1 认识Python 1.1 Python的介绍 官方介绍:Python 是一款易于学习且功能强大的编程语言。 它具有高效率的数据结构,能够简单又有效地实现面向对象编程。Python 简洁的语法与动态输入之特性,加之其解释性语言的本质,使得它成为一种在多种领域与绝大多数平台都能进行脚本编写与应用快速开发工作的理想语言。 名称的...
VTK之类的实现
vtkObject类分析 vtkObjectBase主要实现引用计数,因此vtkObject及其子类也都继承了该特性。vtkObject中实现了在VTK中非常广泛使用的观察者/命令机制,能够方便地处理消息响应,例如处理鼠标消息、键盘消息、进度消息等,VTK中Widget中大量使用了该机制进行消息处理。vtkObject中定义了一个vtkSubjectHelper对象来管理观察者。vtkSubj...
Ubuntu19.10使用Qemu安装树莓派
文章目录 Ubuntu19.10使用Qemu安装树莓派 安装 安装qemu 安装树莓派 图形化界面 下载 参考文献 Ubuntu19.10使用Qemu安装树莓派 之前一直是在Windows下鼓捣虚拟机,这次试试qemu 安装 安装qemu 安装树莓派 在github上找到相应版本的内核和设备树文件。 先创建一个项目目录,把镜像文件、设备树文件,和内核文件都放进去 然后fdisk -l 2020-0...
攻防世界 int_overflow write_up
首先看一下文件信息: 32位 可以栈溢出,用ida32打开看main函数,在login里面发现输入点: 但是输入空间被限制,暂无注入点,再看一下check_passwd: 判断流程是判断passwd长度大于3小于8,然后把s赋值给dest。 首先发现一个问题,v3是unsigned _int8,8位的无符号整型,范围是0~255,可以整数溢出,就是256赋值给v3时,v3=0.也就是说...
MATLAB Learning Days---------子图
子图 子图是要在一个图像上显示多余一个图像,绘制子图命令使用subplot(m,n,p)命令,这里的m,n告诉MATLAB产生的的子图有m行n列,p告诉MATLAB我们所要贴上去的某个已经绘制的图形窗口。 第一个例子我们并排显示这两个函数: 在这两种情况下,我们都设x在0~5之间,y在-1~1之间,首先我们定义函数的定义域,函数然后调用subplot 通过subplot我们传递(1,2,1),告诉...
