告诉我是否有人正在直接访问我的HTTP资源?
有没有办法确定是否有人直接在他们的网站上调用我网站上的图像告诉我是否有人正在直接访问我的HTTP资源?,http,hotlinking,Http,Hotlinking,有没有办法确定是否有人直接在他们的网站上调用我网站上的图像 我有一个网站,我只想确保没有人在使用我的带宽 当然有一些方法,有些方法比其他方法更可信 使用Referer头 有一个名为Referer的HTTP头,它通常包含一个字符串,表示用户访问当前请求时访问的URL 你可以把它看作是“我从这里来”的标题 如果保证它总是存在的话,那么防止人们吸你的大麻就很容易了,尽管事实并非如此,仅仅依靠这个值(有时可能不存在)简直是一场赌博 使用Cookies 判断用户是否是您网站上的真正访问者的另一种方法是
我有一个网站,我只想确保没有人在使用我的带宽 当然有一些方法,有些方法比其他方法更可信
使用Referer头 有一个名为
Referer
的HTTP头,它通常包含一个字符串,表示用户访问当前请求时访问的URL
你可以把它看作是“我从这里来”的标题
如果保证它总是存在的话,那么防止人们吸你的大麻就很容易了,尽管事实并非如此,仅仅依靠这个值(有时可能不存在)简直是一场赌博
使用Cookies 判断用户是否是您网站上的真正访问者的另一种方法是使用cookie,没有cookie并试图访问特定资源(如图像)的用户可能会收到一条消息,说“对不起,只有example.com的真正访问者才能访问此图像” 太糟糕了,没有任何东西表明客户端被迫实现和处理cookie
使用具有设置过期时间的链接[推荐] 这可能是最安全的选择,尽管它最难实现 使用仅在N小时内有效的链接将使您无法在不实施某种爬虫程序的情况下获取带宽,这种爬虫程序会定期对您的站点进行爬网,并返回访问资源(如图像)所需的当前访问令牌 当用户访问站点时,N小时生成的令牌将应用于所有可用资源,并附加到发送回访问者的路径中。此令牌是必需的,仅在N小时内有效 如果用户试图使用无效/不存在的令牌访问图像,您可以将
404
或401
作为HTTP状态码发回(最好是后者,因为这是禁止的请求)
但是有一些怪癖值得一提:
- 来自*搜索引擎*的爬虫可能不会在N小时内访问整个站点,请确保他们可以访问您站点的全部内容。通过使用header User Agent的值来识别它们
- 不要试图将令牌的寿命降低到任何合理的时间以下,请记住,有些用户的连接速度很慢,拥有5秒的令牌可能听起来很酷,但真正的用户可能会被错误地标记
- 永远不要在人们应该能够从外部点(搜索引擎)找到的资源上放置令牌,例如包含您希望保护的图像的页面 如果你这样做是偶然的,你将主要损害你的网站声誉
其他想法。。。 请记住,任何使其不可能实现的方法 如果leechers热链接您的资源从不,则结果应为true 访客被标记为带宽窃贼。你可能想放松一下 我不想让它变得更强大,而是想让它更强大 我宁愿有10个普通访客和2个赖彻,也不愿没有赖彻 只有5个普通用户(因为我无意中标记了5个真实用户) 游客们就像利切人一样(没有过多思考)
是的,但这取决于http引用程序的存在,这是非常不可靠的。这被称为热链接。这可能有助于防止热链接:-尽管有些主机在其CPanel/无论他们使用什么管理面板中,有一种更简单的方法来简单地防止热链接。http referer可能是最好的解决方案;你也可以尝试http cookies。然而,这将锁定一些用户。在互联网上,唯一真正的保护是一个六英尺长的“eula”或充满法律威胁的免责声明;-)如果你担心bandwith,使用低质量的图像、平铺、css等也会有所帮助,但这显然是偏执。值得注意的是,如果你不想让整个世界都能访问资源,不要把它放在互联网上,或者至少把它藏在登录墙后面。规避HTTP协议始终是一种黑客行为,无论您是试图禁用对图像的右键单击还是阻止热链接。