热链接在本地工作,而不是在服务器中工作
hotlink working locally, not in server
我想从远程网站盗链接图片。当我在我的本地 PC(Apache 服务器)中测试时这有效,但当我从我的网站尝试时不起作用。
我不是这方面的专家,但据我了解,如果远程站点的热链接被阻止,它在我的本地服务器上应该也不起作用,对吧?在那种情况下可能是什么问题(我的托管服务提供商说他们没有任何问题)?
让我们来玩这个。
在您的本地服务器上:
- 您向
127.0.0.1
(或 localhost
)请求 returns 一些 HTML 带有盗链图片到 example.com
。
- 浏览器向
example.com
发出后续请求并将 referer header 设置为 127.0.0.1
。
- 现在
example.com
必须确定 referrer 是否允许盗链。
因为对于那个服务器,example.com
和 127.0.0.1
都指的是同一个东西,即服务器本身,这看起来像是一个有效的请求。
在您的远程服务器上:
同上,但将127.0.0.1
替换为your.favourite.url
。
这次服务器验证 referrer 的时候,会得出 your.favourite.url
和 example.com
do not 指的是同一个东西的结论,因此屏蔽了图片请求。
这可能被视为 example.com
的错误配置,因为引荐来源网址可能无法从客户端和服务器上下文解析到同一点。
如果您通过本地网络 IP(例如 192.168.1.42
)访问您的本地服务器,那么热链接应该不再有效,除非 example.com
有一个非常优雅的引荐来源策略,或者恰好使用和你一样的本地IP。
也可以通过暴力破解所有本地网络 IP 来暴露 example.com
的本地 IP,尽管从技术上讲这属于信息泄露,但您无能为力。
我想从远程网站盗链接图片。当我在我的本地 PC(Apache 服务器)中测试时这有效,但当我从我的网站尝试时不起作用。
我不是这方面的专家,但据我了解,如果远程站点的热链接被阻止,它在我的本地服务器上应该也不起作用,对吧?在那种情况下可能是什么问题(我的托管服务提供商说他们没有任何问题)?
让我们来玩这个。
在您的本地服务器上:
- 您向
127.0.0.1
(或localhost
)请求 returns 一些 HTML 带有盗链图片到example.com
。 - 浏览器向
example.com
发出后续请求并将 referer header 设置为127.0.0.1
。 - 现在
example.com
必须确定 referrer 是否允许盗链。
因为对于那个服务器,example.com
和127.0.0.1
都指的是同一个东西,即服务器本身,这看起来像是一个有效的请求。
在您的远程服务器上:
同上,但将127.0.0.1
替换为your.favourite.url
。
这次服务器验证 referrer 的时候,会得出 your.favourite.url
和 example.com
do not 指的是同一个东西的结论,因此屏蔽了图片请求。
这可能被视为 example.com
的错误配置,因为引荐来源网址可能无法从客户端和服务器上下文解析到同一点。
如果您通过本地网络 IP(例如 192.168.1.42
)访问您的本地服务器,那么热链接应该不再有效,除非 example.com
有一个非常优雅的引荐来源策略,或者恰好使用和你一样的本地IP。
也可以通过暴力破解所有本地网络 IP 来暴露 example.com
的本地 IP,尽管从技术上讲这属于信息泄露,但您无能为力。