request.getHeader("Referer");的使用

来源:互联网 发布:js控制浏览器自动全屏 编辑:程序博客网 时间:2024/05/16 01:04

在开发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

0 0