FastDFS防盗链
FastDFS
内置防盗链采用Token
的方式。Token
是带时效的,也就是说在设定的时间范围内,比如1分钟,token
是有效的。token
包含了文件id
、时间戳ts
和密钥
。FastDFS
在URL
中带上当前时间戳和带时效的token
,参数名分别为ts
和token
。Token
的生成和校验都是在服务端,因此不会存在安全问题。
http://192.168.1.250:80/group1/M00/00/00/wKgB9WJzhVyANDPsAABXnhfXmqQ24.xlsx?token=08a6f962effff0a839411b1ab2359caa&ts=1651894588
http.conf
配置文件说明
http.anti_steal.check_token:
是否做token
检查,缺省值为false
。
http.anti_steal.token_ttl:
token TTL
,即生成token
的有效时长
http.anti_steal.secret_key:
生成token
的密钥,尽量设置得长一些,千万不要泄露出去
http.anti_steal.token_check_fail:
token
检查失败,返回的文件内容,需指定本地文件名
配置示例:
# HTTP default content type
http.default_content_type = application/octet-stream# MIME types mapping filename
# MIME types file format: MIME_type extensions
# such as: image/jpeg jpeg jpg jpe
# you can use apache's MIME file: mime.types
http.mime_types_filename=mime.types# if use token to anti-steal
# default value is false (0)http.anti_steal.check_token=true# token TTL (time to live), seconds
# default value is 600
http.anti_steal.token_ttl=60# secret key to generate anti-steal token
# this parameter must be set when http.anti_steal.check_token set to true
# the length of the secret key should not exceed 128 bytes
http.anti_steal.secret_key=FastDFS1234567890# return the content of the file when check token fail
# default value is empty (no file sepecified)
http.anti_steal.token_check_fail=/etc/fdfs/anti-steal.jpg
java 方法
/**
fileId:group1/M00/00/00/wKgB9WJzhVyANDPsAABXnhfXmqQ24.xlsx
secretKey:FastDFS1234567890
**/public String getToken(String fileId,String secretKey) {String url = fileId.substring(fileId.indexOf("/") + 1);int lts = (int) (System.currentTimeMillis() / 1000);String token = "";try {token = ProtoCommon.getToken(url, lts,secretKey);token = fileId + "?token=" + token + "&ts=" + lts;} catch (Exception e) {log.error("文件Token获取失败:" + e);}//group1/M00/00/00/wKgB9WJzhVyANDPsAABXnhfXmqQ24.xlsx?token=08a6f962effff0a839411b1ab2359caa&ts=1651894588return token;}
生成的token
验证无法通过
出现这样的问题请进行如下两项检查:
1、 确认调用token
生成函数,传递的文件id
中没有包含group name
,传递的文件id形如:
M00/00/00/wKgB9WJzhVyANDPsAABXnhfXmqQ24.xlsx
2、 确认服务器时间基本是一致的,注意服务器时间不能相差太多,不要相差到分钟级别
FastDFS防盗链相关推荐
- springcloud+fastdfs在docker中设置防盗链
docker容器中启动fastdfs tracker服务和storage服务 这里下载的是 delron/fastdfs 其中内置了nginx设置 进入storage容器里 /etc/fdfs/ht ...
- ATS中开启Refer防盗链功能
ATS默认提供了对Referer头的http request的防盗链功能,主要应用于图片,对视频等会使用级别更高的防盗链功能,比如事先约定好key,采用md5或HMAC-Sha1算法加密等. 在rem ...
- Linux-LNMP(静态元素不记录日志和过期时间,防盗链,解析php,代理,支持ssl)
Linux-LNMP-Nginx配置二 静态文件不记录日志和过期时间 Nginx防盗链 Nginx访问控制 Nginx解析php相关配置 Nginx代理 Nginx负载均衡 SSL原理 生成SSL密钥 ...
- Nginx防盗链,Nginx访问控制, Nginx解析php相关配置, Nginx代理
2019独角兽企业重金招聘Python工程师标准>>> Nginx防盗链 Nginx防盗链配置需要与不记录日志和过期时间结合在一起,因为都用到了location. 打开配置文件,注释 ...
- Asp.net下实现隐藏真实下载地址(可以实现简单的防盗链)
现在随着FlashGet和xunlei等下载工具的日益普及,下载网站的一些下载地址都能直接被捕获到,,但是有些时候为了防盗链或权限限制不想对地址进行暴露,对于Asp.net下的防盗链有很多方法,我这里 ...
- Nginx+keepalived 实现高可用,防盗链及动静分离配置
一.Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好, ...
- nginx rewrite重写与防盗链配置
nginx rewrite重写规则与防盗链配置方法 时间:2016-02-04 15:16:58来源:网络 导读:nginx rewrite重写规则与防盗链配置方法,rewrite规则格式中flag标 ...
- nginx的配置和优化(隐藏版本号、gzip、expires、防盗链......等)
Nginx配置和优化 1.隐藏版本号 默认情况下,使用curl命令会把nginx的版本信息等获取到,如: [root@transit_machine ~]# curl -I -H"www.b ...
- Nginx使用http_accesskey_module防盗链,告别referer,告别伪装
Nginx使用http_accesskey_module防盗链,告别referer,告别伪装 传统的防盗链很多是依赖referer,比如apache的rewrite模块,根据规则判断referer,这 ...
最新文章
- Oracle 10g Toad查看 表空间 报错 ORA-00600 internal error code arguments [ktfbhget-4], [6], [5]...
- 深度学习核心技术精讲100篇(三十二)-网易实时数仓实战应用
- 4,postman和newman的联合使用
- 程序编译时书写Makefile注意事项一例
- Android_Bitmap_图片的二次采样并生成缩略图
- java多线程交替打印_java多线程 更优雅的实现线程同步:交替打印A、B LockSupport实现...
- mysql有哪些特色SQL语句_Linux-MySQL-有哪些常用sql语句
- 手机支付需厘清六大关键问题
- 实践Hive的点点滴滴
- Python编写远程控制工具
- 贴吧手工自动发帖软件
- 云计算导论第二章习题总结
- 华为手机信息不弹屏了为什么_华为微信不弹出新消息提醒 怎么办
- 按下组合键 可以迅速锁定计算机,电脑快速锁屏快捷键
- Android 关于TextView 默认显示英文字母大写问题
- Journal日志与oplog日志的区别
- 不积跬步无以至千里,不积小流无以成江海----SAX读取xml
- Java 【求一个整数是否为2的倍数】
- QT使用windowsAPI函数提示error LNK2019: 无法解析的外部符号 该符号在函数 _main 中被引用解决方案
- 九宫格控件NineGridView