如何可靠地识别网站

时间:2010-12-07 03:45:10

标签: php file statistics

我有一个与其他子网站链接的文件。

文件:http://site.com/file.img

网站A链接到<img src="http://site.com/file.img"></img>

网站B链接到它<img src="http://site.com/file.img"></img>

我需要可靠地识别哪些网站访问过该文件,但我知道$_SERVER['HTTP_REFERER']可能会被欺骗。我还有哪些其他方法可靠地确认请求者站点?通过IP,让他们注册IP?不确定。设置API密钥?有什么选择?

3 个答案:

答案 0 :(得分:5)

如果网站仅链接到文件,“网站”本身将永远不会实际访问您的图像。相反,正在查看网站的客户端将请求图片。

因此,您依赖于客户发送的信息,这完全不受您的控制,根本不可靠。如果您有机会在客户端上设置某种独特的cookie,您可以以某种方式使用它来进行扩展识别,但即使这样也不可靠。

没有100%可靠的解决方案。

答案 1 :(得分:2)

获取推荐人是您可以做的最好的事情,而不会进入复杂的领域。

如果您不介意复杂,请继续阅读:设置您的Web服务器以仅向网站A和网站B提供file.img ,然后要求网站A和网站B在其末尾设置代理配置,代表其访问者检索file.img

示例:

网站A的访问者加载包含<img src="http://websiteA.com/file.img"/>等图片标记的网页(注意网站A的引用而不是您的网站)。客户请求来自WebsiteA.com的file.img。网站A配置为将路径/file.img的请求代理到您的服务器http://site.com/file.img。您的网站验证它实际上是网站A请求图像,然后将其提供给网站A的代理。然后,网站A将其提供给访问者。

基本上,这会让网站A和B感到痛苦,给您带来性能损失,还需要您进行进一步的配置。但我想这会满足你的要求。

答案 2 :(得分:0)

了解如何实施OpenID依赖,它允许一个站点对另一个站点进行身份验证。协议规范将提示可靠地实现此类方案所需的工作量和开销。

http://googlecode.blogspot.com/2010/11/googles-sample-openid-relying-party.html