一般针对图片等,这里是最简单的代码实现
String referer
=
request.getHeader(
"
referer
"
);
if (referer == null || ! referer.startsWith( " http:// " + request.getServerName())) ... {
return;
}
if (referer == null || ! referer.startsWith( " http:// " + request.getServerName())) ... {
return;
}
关键在于,如果使用
<img src="http://xxxxxxxxxxx/yy.gif"/>
这时,浏览器会自动把当前页面的连接做为文件头的一部分发到服务器,也就是 referer
这样服务器就可以根据这个是否来自允许的主机进行访问控制
如果直接在浏览器输入 http://xxxxxxxxxxx/yy.gif, 则不会向服务器发送 referer,
同样,如果服务器检测referer 没有,同样可以拒绝访问
解决方法:
直接访问肯定不行了,那么只有通过本地的一个程序,使用HttpURLConnection 抓取远端的内容,当然要在header里面伪装referer了!
具体的代码我就不写了,大家可以去搜索 HttpURLConnection 的 使用