我不相信这是可能的,但我认为那里的人比我聪明得多,所以为什么不检查..
我想要一个 HTTP 图像,当在 img 标签中使用时可以从页面内查看,但如果直接调用 img src 链接则不可见。那有意义吗?在页面中可见,但如果直接调用则不可见。
快速编辑 .. 可接受的替代方法是以 url 不可读/无法提取并输入浏览器的方式将图像嵌入页面。
更新 2 ....NET IIS7 环境。
我不相信这是可能的,但我认为那里的人比我聪明得多,所以为什么不检查..
我想要一个 HTTP 图像,当在 img 标签中使用时可以从页面内查看,但如果直接调用 img src 链接则不可见。那有意义吗?在页面中可见,但如果直接调用则不可见。
快速编辑 .. 可接受的替代方法是以 url 不可读/无法提取并输入浏览器的方式将图像嵌入页面。
更新 2 ....NET IIS7 环境。
请注意,Norton Internet Security 和 Norton Personal Firewall 等“安全”产品Referer:
会默认阻止发送 HTTP(TBL 的拼写错误,不是我的)标头。由于这些产品被广泛使用,引荐来源阻止会给很多人带来麻烦。
FWIW,如果我热衷于通过查看您的页面以外的方式获取您的图像(尽管我无法想象我为什么应该这样做),我会在查看您的页面时通过网络获取这些位,使用像 Charles 这样的东西或提琴手。完全不可能在网络上提供内容,但要阻止人们制作副本。
我相信您可以通过依赖浏览器提供的引荐来源网址来实现类似的目标 - 当引荐来源网址是您自己网站上的网页时,您会提供图像,但不是其他方式。
它不是 100% 可靠的(因为在 HTTP 规范中传递引用者不是强制性的),但对于某些网站来说效果很好。
这是通过配置您的网络服务器来实现的;因此,您可能会更幸运地在 ServerFault 上问这个问题。
是的,有很多关于如何在 apache 中设置 mod_rewrite 规则以尝试阻止直接访问文件的文章。
http://www.cyberciti.biz/faq/apache-mod_rewrite-hot-linking-images-leeching-howto/
这取决于它是如何构建的。您始终可以确保您的引荐来源网址是您希望托管它的页面并锁定那里的请求。
如果您有一些身份验证的概念,您可以将图像隐藏在某种类型的 php/ruby 脚本或 asp.net http 处理程序下,该处理程序从服务器或数据库请求图像(在一个不公开但您可以访问的地方)服务器端代码),并且该处理程序可以在返回之前检查您的身份验证状态。
坦率地说,我重新设计了我的解决方案,所以我真的不必担心它......知道这是一个警察,因为它并没有真正回答这个问题,但它确实存在。我担心如果用户能够弄清楚用于命名图像的序列,他们将能够欺骗我正在创建的“游戏”。快速而肮脏的解决方案....不要使图像文件名顺序/可预测。