在开发web程序的时候,有时我们需要得到用户是从什么页面连过来的,这就用到了referer。
它是http协议,所以任何能开发web程序的语言都可以实现,比如jsp中是:
request.getHeader("referer");
php是$_SERVER['HTTP_REFERER']。其他的我就不举例了(其实是不会其他的语言)。
js的话就是这样做:javascript:document.referrer
那它能干什么用呢?我举两个例子:
1,防止盗连,防钓鱼。
比如我是个下载软件的网站,在下载页面我先用referer来判断上一页面是不是自己网站,如果不是,说明有人盗连了你的下载地址。
2,电子商务网站的安全,我在提交信用卡等重要信息的页面用referer来判断上一页是不是自己的网站,如果不是,可能是黑客用自己写的一个表单,来提交,为了能跳过你上一页里的javascript的验证等目的。
使用referer的注意事项:
如果直接在浏览器里输入有referer的页面,返回是null(jsp),也就是说referer只有从别的页面点击连接来到这页的才会有内容。
相关推荐
总的来说,"request.getHeader("referer")"在Java Web开发中是实现防盗链功能的重要工具,通过检查来源URL,服务器可以有效控制资源的访问权限,保障网站权益。但同时,开发者也需要考虑到隐私保护和安全策略的平衡...
今天我来分享一下,request.getHeader(“Referer”)获取上次访问的URL链接,在什么情况下他会出现问题! 我在某些页面中,有某几个按钮,分别用来跳转到action.do?method=m 但是,我是用 warpLoaction(”url”);这...
`request.getHeader("Referer")` 是在Java Servlet或JSP中获取HTTP请求头中的`Referer`字段的方法,这个字段通常用于追踪用户访问来源。`Referer`字段包含的是用户先前访问页面的URL,这对于分析用户行为、防止跨站...
- `request.getHeader("Referer")`: 获取上一个页面的URL。 - `request.getHeader("Accept-Language")`: 获取客户端可接受的语言。 - `request.getHeader("Accept-Encoding")`: 获取客户端支持的编码方式。 - `...
String referer = request.getHeader("referer"); String acceptLanguage = request.getHeader("accept-language"); String contentType = request.getHeader("content-type"); String acceptEncoding = request....
- **`request.getHeader("Referer")`**: 获取请求头中的“Referer”字段。 通过这些信息,开发人员可以详细了解客户端与服务器之间的通信细节,这对于调试和优化Nginx配置非常有帮助。 综上所述,通过合理配置...
referer.startsWith("http://yourdomain.com")) { response.setStatus(403); // 设置状态码为403,禁止访问 } else { // 正常返回图片 %> <img src="path/to/image.jpg"> } %> ``` 2. Cookie验证:为合法用户...
if(null==reque.getHeader("Referer")){ request.setAttribute("message", "你进行了不合法的操作!!!"); request.getRequestDispatcher("error.jsp").forward(request, response); 里面有更详细的代码...
referer = referer.substring(referer.indexOf("://") + 3); } // 如 baidu.com/abc.html // ... } } } ``` 总结:Shiro 开启 CSRF 表单防护可以有效地防御 CSRF 攻击,通过验证 Referer 字段来检查请求的...
referer.startsWith("http://yourdomain.com")) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "非法引用"); return; } // 请求转发 RequestDispatcher dispatcher = request.getRequestDispatcher...
RequestDispatcher dispatcher = request.getRequestDispatcher(request.getHeader("referer")); dispatcher.forward(request, response); ``` 需要注意的是,这些方法依赖于浏览器发送`HTTP_REFERER`头,但并非...
= null && referer.matches("http(s)?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?")) { response.setStatus(301); response.setHeader("Location", "redirect-url"); response.setHeader("Connection", "close"); } ...
在登录页面可以通过`request.getHeader("Referer")`获取当前请求的来源页面URL。 ```java String lastUrl = request.getHeader("Referer"); ``` 2. **记录来源页面地址**: 可以将`lastUrl`作为隐藏参数传递...
String url=request.getHeader(Referer); 2、获取本网页的URL: String url=request.getScheme()+://+ request.getServerName()+request.getRequestURI(); 您可能感兴趣的文章:jsp获取url路径的方法分析在jsp页面...
- `<%=request.getHeader("referer") %>`获取上一页(action)的完整路径。 - EL表达式`${header['Referer']}`同样获取上一页路径,但可能不是当前地址栏的路径。 - 使用`request.getRequestURI()`在Servlet中...
`getHeader("referer")` 方法则可以获取到客户端发起请求前的页面URL,即Referer头信息,这在追踪用户来源时很有用。 2. **请求转发和重定向** - **请求转发(RequestDispatcher)**:使用 `request....
String referer = request.getHeader("Referer"); if (referer == null) { return false; // 如果没有Referer,可能是一个直接的链接,拒绝 } try { URL url = new URL(referer); // 检查域名是否匹配,例如...
- 可以通过`request.getHeader("referer")`来获取请求当前页面的前一个页面的URL地址。 7. **防止页面缓存:** - 为了防止浏览器缓存页面,可以使用以下代码: ```java response.setHeader("Expires", "0"); ...
例如,可以使用 request.getHeader("Accept") 来获取 Accept 头字段的值。 四、结论 HTTP 请求头是 JavaWeb 开发中的一种重要机制,理解 HTTP 请求头对于构建高效的 Web 应用程序至关重要。掌握 HTTP 请求头的概念...
可以通过`request.getHeader("referer")`来获取请求页面的URL,这在跟踪用户来源或进行日志记录时非常有用。 ### 7. 设置页面过期时间 要使页面在浏览器中不过期,可以使用`response.setHeader("Expires","0")`来...