如何防盗链?

J2EE 码拜 9年前 (2015-04-07) 960次浏览 0个评论
 

客户端发送一个请求,提交给struts2处理,就比如点击超链接,进行文件下载,但是一般的话 记住这个下载地址以后就可以任意下载了,如何让这个下载地址使用一次之后就失效呢?   客户端是不需要登录的。
求大神帮忙

如何防盗链?
6分
http的header 里面取refer  request.getHeader(“Referer”)可以取出你网站的连接
如何防盗链?
6分
有个想法:下载的地址是动态的,比如和日期相关,你原来的地址可能是这样的 csdb.com/download?id=1,下载id=1的文件。换成csdb.com/download?id=20141023-1.在id前加一个当前日期,那么这个地址只在2014-10-23有效,当然这样太明显了,容易被看出来,可以伪装一下。
如何防盗链?
6分
让这个下载地址使用一次之后就失效 这个跟防盗链是两回事
防盗链是防止外站的调用 调用次数是没有限制的
使用一次之后就失效 可以加上个校验的参数 
如何防盗链?
6分
加入一个随机sign的一个签名校验,这个必须由你方客户端发起的请求才认可,到服务器进行校验
如何防盗链?
10分
如果只想要一次的话,那么你可以再服务器内部维护一个配置文件,比如:
下载地址是http://localhost/think/downloadAction.do?sign=2134234234;
后面sign的值存在配置文件中,如果别人拿了sign值过来你就看在不再配置文件中,如果在就让其下载,下载完成之后将这个标志删除掉即可
如何防盗链?
6分
做个标记,每次下载前 判断之前是否下载过
如何防盗链?
各位说的对我作用都很大,谢谢

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明如何防盗链?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!