参数key
、过期时间T
、url访问路径
实现参数 | 值 | 解释 |
---|---|---|
key | 9388f4ba63b89bba5b9b84aa70a92eaac099d39b | 前后端商定写死 |
T | 当前时间+2000s | 过期时间 |
URL | 用户请求的url路径 | 用户路径分为死路径和具体路径 |
1、前端定义key并获取key值。
2、前端获取当前时间戳并+2000s
3、获取URL(一般写死)
4、前端根据key、url、过期时间t使用md5生成签名
5、前端发起请求,增加sign参数和过期时间t
6、后端获取url和商定的key和时间t生成签名,并与前的传递的sign进行比较。
7、如果相同且时间没有过期,则通过校验,否则校验失败
1、存在时间有效期,防止爬虫爬取
2、增加爬虫的破解成本
其中这三种用户的第一种和第二种属于非法用户,需要防止这些用户
public class RefererServlet extends HttpServlet {//防盗链public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//referer为客户端带来的请求头 String referer = Header("Referer");System.out.println(referer);//如果链接出自地址栏的输入,则跳转至本站点RequestAndResponse应用的首页if (referer==null) {System.out.println("由于您访问的内容版权所有,您是地址栏上输入的链接,即将跳转至本站首页...");response.sendRedirect("/RequestAndResponse/index.jsp");return ;}//如果链接出自本站点的RequestAndResponse应用的页面,则正常显示,如果是出自其他站点或本站点的其他应用,则跳转至本站点RequestAndResponse应用的首页if(!referer.startsWith("/")){System.out.println("由于您访问的内容版权所有,您是其他网站页面的链接,即将跳转至本站首页...");response.sendRedirect("/RequestAndResponse/index.jsp");return ;}else {System.out.println("来自本站页面的链接,合法用户");RequestDispatcher("content.jsp").forward(request, response);}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}
本文发布于:2024-01-30 02:36:36,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170655339818633.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |