`

request.getHeader("referer")

    博客分类:
  • JAVA
阅读更多
request.getHeader("referer")
 
在开发web程序的时候,有时我们需要得到用户是从什么页面连过来的,这就用到了referer。

它是http协议,所以任何能开发web程序的语言都可以实现,比如jsp中是:

request.getHeader("referer");

php是$_SERVER['HTTP_REFERER']。其他的我就不举例了(其实是不会其他的语言)。

那它能干什么用呢?我举两个例子:

1,防止盗连,比如我是个下载软件的网站,在下载页面我先用referer来判断上一页面是不是自己网站,如果不是,说明有人盗连了你的下载地址。

2,电子商务网站的安全,我在提交信用卡等重要信息的页面用referer来判断上一页是不是自己的网站,如果不是,可能是黑客用自己写的一个表单,来提交,为了能跳过你上一页里的javascript的验证等目的。

使用referer的注意事项:

如果我是直接在浏览器里输入有referer的页面,返回是null(jsp),也就是说referer只有从别的页面点击连接来到这页的才会有内容。

我做了个实验,比如我的referer代码在a.jsp中,它的上一页面是b.htm,c.htm是一个带有iframe的页面,它把a.jsp嵌在iframe里了。我在浏览器里输入b.htm的地址,然后点击连接去c.htm,那显示的结果是b.htm,如果我在浏览器里直接输入的是c.htm那显示的是c.htm
分享到:
评论

相关推荐

    request.getHeader("referer")防盗链

    总的来说,"request.getHeader("referer")"在Java Web开发中是实现防盗链功能的重要工具,通过检查来源URL,服务器可以有效控制资源的访问权限,保障网站权益。但同时,开发者也需要考虑到隐私保护和安全策略的平衡...

    关于request.getHeader(Referer)的问题探讨

    今天我来分享一下,request.getHeader(“Referer”)获取上次访问的URL链接,在什么情况下他会出现问题! 我在某些页面中,有某几个按钮,分别用来跳转到action.do?method=m 但是,我是用 warpLoaction(”url”);这...

    JSP获取HTTP header信息(request)例子

    - `request.getHeader("Referer")`: 获取上一个页面的URL。 - `request.getHeader("Accept-Language")`: 获取客户端可接受的语言。 - `request.getHeader("Accept-Encoding")`: 获取客户端支持的编码方式。 - `...

    关于request.getHeader("Referer")的问题探讨

    `request.getHeader("Referer")` 是在Java Servlet或JSP中获取HTTP请求头中的`Referer`字段的方法,这个字段通常用于追踪用户访问来源。`Referer`字段包含的是用户先前访问页面的URL,这对于分析用户行为、防止跨站...

    jsp编程中的小技巧(仅供参考)

    String referer = request.getHeader("referer"); String acceptLanguage = request.getHeader("accept-language"); String contentType = request.getHeader("content-type"); String acceptEncoding = request....

    第九讲Nginx动静分离URL转发实战.pptx

    - **`request.getHeader("Referer")`**: 获取请求头中的“Referer”字段。 通过这些信息,开发人员可以详细了解客户端与服务器之间的通信细节,这对于调试和优化Nginx配置非常有帮助。 综上所述,通过合理配置...

    图片防盗链(jsp)

    referer.startsWith("http://yourdomain.com")) { response.setStatus(403); // 设置状态码为403,禁止访问 } else { // 正常返回图片 %> <img src="path/to/image.jpg"> } %> ``` 2. Cookie验证:为合法用户...

    Filter_Listener相信代码使用

    if(null==reque.getHeader("Referer")){ request.setAttribute("message", "你进行了不合法的操作!!!"); request.getRequestDispatcher("error.jsp").forward(request, response); 里面有更详细的代码...

    Shiro开启CSRF表单防护

    referer = referer.substring(referer.indexOf("://") + 3); } // 如 baidu.com/abc.html // ... } } } ``` 总结:Shiro 开启 CSRF 表单防护可以有效地防御 CSRF 攻击,通过验证 Referer 字段来检查请求的...

    httpservlet_request

    referer.startsWith("http://yourdomain.com")) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "非法引用"); return; } // 请求转发 RequestDispatcher dispatcher = request.getRequestDispatcher...

    Javascript实现返回上一页面并刷新的小例子

    RequestDispatcher dispatcher = request.getRequestDispatcher(request.getHeader("referer")); dispatcher.forward(request, response); ``` 需要注意的是,这些方法依赖于浏览器发送`HTTP_REFERER`头,但并非...

    正则匹配URL.txt

    = null && referer.matches("http(s)?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?")) { response.setStatus(301); response.setHeader("Location", "redirect-url"); response.setHeader("Connection", "close"); } ...

    jsp返回登陆前的页面的几种实现

    在登录页面可以通过`request.getHeader("Referer")`获取当前请求的来源页面URL。 ```java String lastUrl = request.getHeader("Referer"); ``` 2. **记录来源页面地址**: 可以将`lastUrl`作为隐藏参数传递...

    获取上一页面的URL和本页的URL的方法

    String url=request.getHeader(Referer); 2、获取本网页的URL: String url=request.getScheme()+://+ request.getServerName()+request.getRequestURI(); 您可能感兴趣的文章:jsp获取url路径的方法分析在jsp页面...

    基于HttpServletRequest 相关常用方法的应用

    `getHeader("referer")` 方法则可以获取到客户端发起请求前的页面URL,即Referer头信息,这在追踪用户来源时很有用。 2. **请求转发和重定向** - **请求转发(RequestDispatcher)**:使用 `request....

    JAVA开发中遇到的问题和异常.doc

    - `<%=request.getHeader("referer") %>`获取上一页(action)的完整路径。 - EL表达式`${header['Referer']}`同样获取上一页路径,但可能不是当前地址栏的路径。 - 使用`request.getRequestURI()`在Servlet中...

    java 70个问答

    - 可以通过`request.getHeader("referer")`来获取请求当前页面的前一个页面的URL地址。 7. **防止页面缓存:** - 为了防止浏览器缓存页面,可以使用以下代码: ```java response.setHeader("Expires", "0"); ...

    java防盗链代码和jar

    String referer = request.getHeader("Referer"); if (referer == null) { return false; // 如果没有Referer,可能是一个直接的链接,拒绝 } try { URL url = new URL(referer); // 检查域名是否匹配,例如...

    JavaWeb开发技术-HTTP请求头.pptx

    例如,可以使用 request.getHeader("Accept") 来获取 Accept 头字段的值。 四、结论 HTTP 请求头是 JavaWeb 开发中的一种重要机制,理解 HTTP 请求头对于构建高效的 Web 应用程序至关重要。掌握 HTTP 请求头的概念...

    70个JAVA问答.txt

    可以通过`request.getHeader("referer")`来获取请求页面的URL,这在跟踪用户来源或进行日志记录时非常有用。 ### 7. 设置页面过期时间 要使页面在浏览器中不过期,可以使用`response.setHeader("Expires","0")`来...

Global site tag (gtag.js) - Google Analytics