检查远程映像是否受热链接保护

时间:2013-01-22 01:11:58

标签: php javascript hotlinking

我想检查远程图像是否受到热链接保护。

  • 如果图像没有防止热链接,我想显示图像。 (别担心,我会在源代码中添加一个可见的超链接,我会给合法的所有者删除图像的可能性。)
  • 如果图像受到保护,我什么都不做。

是否可以(使用PHP和/或Javascript)区分受热链接保护的图像和“可热链接”图像?

4 个答案:

答案 0 :(得分:4)

是的,你绝对可以用PHP做到这一点。如果要对文件进行热链接,请创建HTTP连接并将请求中的Referer标头设置为您的站点。如果您使用图像数据获得200响应,则不受热链接保护。如果您收到301转发响应,则受到热链接保护。

答案 1 :(得分:1)

最简单的做法是这样:

<img src="http://example.com/image.png" onerror="alert('Image not found or protected');" />

当然可以找到,但这需要发出HTTP请求,这可能很昂贵 - 特别是如果远程主机速度很慢或负载不足。

答案 2 :(得分:1)

以下是你在Ruby中如何做到这一点

Table1:
Table | Type | Description
   X  |  A   | A long line th
   X  |  B   | A long line th
   Y  |  B   | This line d
   Y  |  A   | This line d

TableX:
Type | Description
  A  | A very long line that doesn't get cut off
  B  | A long line that doesn't get cut off

TableY:
Type | Description
  A  | just a long line that doesn't get cut off
  B  | This line doesn't get cut off

Needed result
===============
Table1:
Project | Type | Description
   X    |  A   | A long line th
   X    |  B   | A long line that doesn't get cut off
   Y    |  B   | This line doesn't get cut off
   Y    |  A   | This line d

答案 3 :(得分:0)

您无法使用客户端JavaScript轻松检测此每个网址,但您可以完全使用hotlink.js来规避热链接保护。