PHP: 如何屏蔽图片请求的http referer?
PHP: How to block the http referer for an image request?
由于盗链保护,我无法显示图像。为了获取图像而发送的 http 请求包含一个非空引用 header。这会导致热链接保护启动。
使用referer控制工具,我可以屏蔽referer,从而绕过防盗链。但是现在我想在 PHP/HTML/javascript 代码中执行此操作。查了资料说是可以的,但是不太明白怎么实现。
有人可以帮帮我吗?
提前致谢!
仅供参考:我已获得该网站的许可进行热链接,因为这是针对 android 应用程序的。但是他们无法为我提供 API.
无法从浏览器请求中伪造引荐来源 header,甚至无法通过 JavaScript.
的调用
2022 更新: 正如评论和其他答案中指出的那样,这个 is now possible(IE 和其他非常旧的浏览器除外)。
您可以设置一个代理服务器,伪造 Referer header。然后,您需要让 android 应用程序指向您自己的服务器以获取所有图像。您可以从 PHP 执行此操作,使用 curl 函数(甚至直接通过套接字 API)。
注意:如果目的是真正的盗链,那么这不会节省任何东西,因为您最终会提供所有图像。它增加了另一个可能会损坏的移动部件。如果您的图像供应商无法为您提供更好的解决方案,请寻找其他供应商?
您可以通过将 no-referrer
值设置为 img
元素的属性 referrerpolicy
来尝试避免热链接保护。
详情 here.
由于盗链保护,我无法显示图像。为了获取图像而发送的 http 请求包含一个非空引用 header。这会导致热链接保护启动。
使用referer控制工具,我可以屏蔽referer,从而绕过防盗链。但是现在我想在 PHP/HTML/javascript 代码中执行此操作。查了资料说是可以的,但是不太明白怎么实现。
有人可以帮帮我吗? 提前致谢!
仅供参考:我已获得该网站的许可进行热链接,因为这是针对 android 应用程序的。但是他们无法为我提供 API.
无法从浏览器请求中伪造引荐来源 header,甚至无法通过 JavaScript.
的调用2022 更新: 正如评论和其他答案中指出的那样,这个 is now possible(IE 和其他非常旧的浏览器除外)。
您可以设置一个代理服务器,伪造 Referer header。然后,您需要让 android 应用程序指向您自己的服务器以获取所有图像。您可以从 PHP 执行此操作,使用 curl 函数(甚至直接通过套接字 API)。
注意:如果目的是真正的盗链,那么这不会节省任何东西,因为您最终会提供所有图像。它增加了另一个可能会损坏的移动部件。如果您的图像供应商无法为您提供更好的解决方案,请寻找其他供应商?
您可以通过将 no-referrer
值设置为 img
元素的属性 referrerpolicy
来尝试避免热链接保护。
详情 here.