首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Amazon Cloudfront私有分发- CSS中的图像链接

Amazon Cloudfront私有分发- CSS中的图像链接
EN

Stack Overflow用户
提问于 2012-08-23 23:26:45
回答 6查看 982关注 0票数 13

我在Cloudfront中创建了一个私有发行版,以防止热链接。我设法用带签名的URL创建了到我的对象的链接,现在工作得很好。

我唯一担心的是,我的css样式表中的图像链接不起作用,因为它们没有签名。所以如果我有,举个例子:

代码语言:javascript
运行
复制
background-image: url('../img/bg.png');

背景图像不会显示出来,因为样式表不包含签名的url,因此Cloudfront拒绝提供内容。

我能做些什么来防止这种情况发生吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-10-05 16:20:57

让我后退一步,问一个基本的问题:你真的担心人们热链接你的图片吗?真的?如果有人这样做了,它会对你产生什么样的现实影响?真的?

如果你有一个合法的理由来阻止人们热链接,那么我不太确定any CDN服务(在这个例子中是CloudFront)对你来说是正确的解决方案。

嘿,我只是说实话,…

票数 6
EN

Stack Overflow用户

发布于 2012-08-27 22:39:02

有几种方法,每一种都有缺点。

与静态CSS文件不同,您可以通过模板(或其他一些将资源映射到CloudFront位置的智能方法)生成它。通过使用Last-Modified和max-age缓存头,您可以在这里使用一定程度的缓存。最难的解决方案,但可以说是最好的保护。

为所有CSS资源设置一个重定向路径,基本上是一个小脚本来重写CF的路径(注意只重写CSS资源,不重写其他内容)。这允许您保留当前的静态CSS,但会打开重定向脚本的潜在热链接。

介于这两者之间的东西可能是cron脚本,它会生成带有链接的静态CSS文件,该文件将在1.5天内过期,以减少服务器负载。

票数 1
EN

Stack Overflow用户

发布于 2012-10-06 23:23:42

对css文件使用私有发行版通常是一个非常糟糕的主意,因为向css添加(可能不断变化的)过期时间和签名会阻止浏览器缓存它们,因此首先会大大降低使用Cloudfront的有用性。

即使你使用很长的过期时间,那么那些拼命想要热链接你的css背景图像的人会简单地设置一个脚本来抓取你的css文件并从那里提取图像urls。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12095100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档