在开发web程序的时候,有时我们需要得到用户是从什么页面连过来的,这就用到了referer。
它是http协议,所以任何能开发web程序的语言都可以实现,比如:在servlet或jsp中使用:
request.getHeader("referer");
那它能干什么用呢?我举两个例子:
1,防止盗连,比如我是个下载软件的网站,在下载页面我先用referer来判断上一页面是不是自己网站,如果不是,说明有人盗连了你的下载地址。
2,电子商务网站的安全,我在提交信用卡等重要信息的页面用referer来判断上一页是不是自己的网站,如果不是,可能是黑客用自己写的一个表单,来提交,为了能跳过你上一页里的javascript的验证等目的。
使用referer的注意事项:
如果我是直接在浏览器里输入有referer的页面,返回是null(jsp),也就是说referer只有从别的页面点击连接来到这页的才会有内容。
3,getHeader( "Referer ")是通过http协议获取值,即<a href= "url "> xxx </a> 标记才能获得当前页面的URL, 而 <a href="javascript:location= 'url ' ">xxx</a> 时getHeader( "Referer")=NULL。同理,onclick事件也是获取不到值的。
解决方案,可以在页面中添加如下代码:
<a id="link" href="../admin/index.jsp" style="display:none">xxx</a>
<script type="text/javascript">
var link =document.getElementById("link");
link.click();
</script>
转载自:http://blog.sina.com.cn/s/blog_4e0cc90901019f9d.html
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。