防止Amazon Cloudfront热链接 - 代码日志

防止Amazon Cloudfront热链接

我使用Amazon Cloudfront托管我所有的网站的图像和视频,为我们的用户提供更快速的服务,这些用户遍布全球。我还对Cloudfront上托管的元素应用相当积极的前向缓存,将Cache-Controlto设置为public,max-age = 7776000。

我最近发现我的烦恼是,第三方网站是热链接到我的Cloudfront服务器,以在未经授权的情况下在自己的页面上显示图像。

我已经配置了.htaccessto防止在我自己的服务器上的热链接,但没有找到一种在Cloudfront上这样做的方法,这似乎不支持本机的功能。而令人厌烦的是,亚马逊的Bucket政策,可用于防止热链接,只对S3有效,它们对CloudFront发行没有任何影响[link]。如果您想要利用政策,您必须直接从S3提供内容。

擦洗我的服务器日志的热连接器和手动更改文件名不是一个真正的现实选择,虽然我一直在这样做,以结束最明目张胆的罪行。

欢迎任何建议。

官方的方法是使用signed urls作为媒体。对于您要分发的每个媒体片段,您可以生成一个特定的url,它可以在给定的时间和源IP约束条件下工作。

静态页面的一种方法是为该页面中包含的媒体生成临时URL,该页面的长度为页面缓存时间的2倍。假设您的网页的缓存时间是1天。每2天,链接将被无效,这些链接必须更新其URL。这不是万无一失的,因为他们可以自行构建工具来获取新的URL,但它应该可以防止大多数人。

如果您的页面是动态的,您不必担心垃圾页面的缓存,以便您只需生成只适用于请求者的IP的URL。

http://stackoverflow.com/questions/5652962/preventing-amazon-cloudfront-hotlinking

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:防止Amazon Cloudfront热链接