我正在开发一个Java EE应用程序(JSF + Richfaces + Tomcat)。
我想做的是不允许其他网站使用我的js / css文件。
例如,网站www.other-domain.com可以使用:
<img src="http://www.my-domain.com/ph/hello.jpg"/>
我想避免它(它可以使我的服务器超载)
有没有办法避免将我的js / css / photos文件加载到其他域?
答案 0 :(得分:2)
TL; DR:没有万无一失的方法可以做到这一点(但如果你能忍受误报和误报,那就可行了。)
您可以通过脚本为您的JS和CSS提供服务,并检查HTTP请求是否有来自您域的Referer
字段 - 这将阻止大多数此类所谓的“热链接”。如果你想成为Evil,你可以改为使用不同的JS / CSS文件,例如:一个显示“不要热链接”的消息 - 请注意,这将显示给其他网站的用户,而不是那些构建它的人。
请注意,虽然大多数人都没有弄乱这个标题,但是有些人会完全关闭它,有些AV /防火墙套件会删除它们,并且欺骗是微不足道的。如果您认为有些人会看到您的网站没有JS和CSS,那么您可以这样做。
无论哪种方式,您的网站仍然必须回复这些“热链接”请求,因此您不会立即看到带宽/处理节省 - 您只会在人们(希望)停止热链接到您的文件后才会看到它们(因为这对他们来说不方便)。
答案 1 :(得分:1)
所谓的'hotlinking'取决于Apache Tomcat是否附带了一组mod_rewrite规则,您可能希望获得这些资源:
答案 2 :(得分:0)
100%无法正常工作。总是可以获得你的JS / CSS。您可以对其进行模糊处理并对其进行压缩,但不能保护它不被复制。
- 皮特