JSP用referer能保证页面不被“盗链”吗?

 

我的答案是:不能保证。

referer是浏览器请求一个页面时所附带的一个参数,这个参数也就是告诉了服务器你是从哪里链接过来的。

在你的浏览器的页面上点击了一个指向一个页面的超链接的时候,浏览器就会向web服务器发送request,

request的请求数据包中就会包涵了referer参数。

request的数据包结构:

<input type="ifream" height="200" width="300" src="http://blog.csdn.net/scnu_xiaokun/article/details/4065186" />

通常我们都是通过request.getParameter("referer")来获得referer参数的值,然后判断referer是否是本网站的网址或者为空,如果不是则response.setStatus(404)来禁止盗链的。

<%

    String mess=request.getParameter("referer");

    if(mess==null )

    {

        mess="";

        response.setStatus(404);

    }

    if(!(mess.startWith(http://127.0.0.1:8080))

        response.setStatus(404);

%>

 

为什么referer不能保证页面被盗链呢?那就是request数据包能够被伪造!!!

参照request包的格式进行伪造就行了。

伪造了怎么解决referer参数值的问题?

这个需要花点点时间去发现啦,先试试用下它的网站的域名或者IP,不行再详细进行尝试。从地址栏可能会得到页面的所在目录的。

更直接的是直接把超链接所在的网页的地址拿下了就行了。

posted @ 2013-05-08 09:57  若 ♂ 只如初见  阅读(531)  评论(1编辑  收藏  举报