博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java防盗链实现
阅读量:5861 次
发布时间:2019-06-19

本文共 1077 字,大约阅读时间需要 3 分钟。

   对于防盗链技术,网上提供了很多很多的相关技术,但是不是特别复杂就是效果不好。

   这里在网上找到一种思路,就是关于HTTP协议响应头中包含的Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。所以我们可以通过得到响应头中包含的referer来判断其请求来自哪里,如果不是本系统页面的请求则可能是盗链。

   在ASP中request有ServerVariables("HTTP_REFERER")方法直接给我们提供类似防盗链的方式。可是我们的不直接提供支持,所以对referer来源的判断则只有我们自己实现了。

   我们知道referer包含的是请求发过来的源页面,而对于浏览器地址栏直接发送的请求referer为空。

   所以我们可以实现一个Filter对特定请求实现监听,并且有:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)            throws IOException, ServletException {            HttpServletRequest req = (HttpServletRequest) request;            HttpServletResponse resp = (HttpServletResponse) response;            String referer = req.getHeader("referer");            if(null != referer && referer.trim().startsWith("http://127.0.0.1:8080/xxx")){                 System.out.println("正常页面请求");                 chain.doFilter(req, resp);            }else{                 System.out.println("盗链");                 req.getRequestDispatcher("/html/error.html").forward(req, resp);            } }

 

转载于:https://www.cnblogs.com/gscq073240/articles/6550261.html

你可能感兴趣的文章
把二叉树打印成多行(未)
查看>>
系统文件必须同“位”
查看>>
好程序员分享JavaScript代码组织结构良好的5个特点
查看>>
论WEB服务器框架选型
查看>>
基础算法--辗转相除法
查看>>
【已解决】http400错误
查看>>
crond定时任务详细介绍
查看>>
web ssh方案Gateone
查看>>
HTML5教程:1.2 HTML 5会深受欢迎的理由
查看>>
PostgreSQL 约束延迟生效(deferrable)
查看>>
Laravel 应用性能调优
查看>>
我的友情链接
查看>>
Linux mail 命令
查看>>
SublimeText Markdown Edit
查看>>
etcd选举机制
查看>>
httpd安全控制
查看>>
html解析
查看>>
LNMMP架构实现Web动静分离
查看>>
RHEL6.8编译安装LAMP环境:httpd-2.4+mysql5.6+php5.5;基于LAMP环境部署WordPress
查看>>
1.2.1 标示符
查看>>