2

我有一个包含我的媒体文件的目录,我不需要在其他网站上显示它们。服务器不支持 .htaccess,因为它使用 nginx。

如何为我的文件启用热链接保护?谢谢你。

4

3 回答 3

3

最简单的方法是检查 HTTP 请求中的Referer标头。基本上,如果该标头没有来自您网站的 URL,那么这可能是热链接。

这有以下问题:

  • 可以伪造引用标题 -> 热链接有效
  • 所有用户代理都不一定会发送 Referrer 标头 -> 合法用户可能无法获取内容。

您还可以在用户浏览您的网站时设置 cookie,并在用户访问流媒体内容时检查该 cookie 是否存在。

于 2009-12-07T10:29:06.190 回答
1

细节可能已经过时,但 Igor 给出了一个用于图像热链接保护的引用映射示例,这可能在此处有用:http: //nginx.org/pipermail/nginx/2007-June/001082.html

如果您决定走推荐人路线。

如果您使用的是 memcached,您还可以存储一段时间的客户端 IP 地址,并且仅在缓存中找到未过期的客户端 IP 时才提供您的流媒体。客户端 IP 在正常浏览期间被缓存,确保查看您的流媒体内容的人最近也访问过您的网站。

于 2009-12-29T22:06:03.813 回答
0

在我的 hostgator 站点上,他们使用 nginx 作为 Apache(nginx+apache)的代理。也许这会对你有所帮助。此外,如果您有权访问日志,如果您看到大量来自我会调查的 ip 的流量,并且如果它指向一个站点,则阻止其他 Web 服务器。Php 的 file_get_contents 不会被 htaccess 或我知道的任何其他东西阻止,除了阻止 ip。

于 2018-01-22T02:49:42.130 回答