FastDFS内置防盗链采用Token的方式。Token是带时效的,也就是说在设定的时间范围内,比如1分钟,token是有效的。token包含了文件id时间戳ts密钥FastDFSURL中带上当前时间戳和带时效的token,参数名分别为tstokenToken的生成和校验都是在服务端,因此不会存在安全问题。

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防盗链相关推荐

  1. springcloud+fastdfs在docker中设置防盗链

    docker容器中启动fastdfs tracker服务和storage服务 这里下载的是 delron/fastdfs 其中内置了nginx设置  进入storage容器里 /etc/fdfs/ht ...

  2. ATS中开启Refer防盗链功能

    ATS默认提供了对Referer头的http request的防盗链功能,主要应用于图片,对视频等会使用级别更高的防盗链功能,比如事先约定好key,采用md5或HMAC-Sha1算法加密等. 在rem ...

  3. Linux-LNMP(静态元素不记录日志和过期时间,防盗链,解析php,代理,支持ssl)

    Linux-LNMP-Nginx配置二 静态文件不记录日志和过期时间 Nginx防盗链 Nginx访问控制 Nginx解析php相关配置 Nginx代理 Nginx负载均衡 SSL原理 生成SSL密钥 ...

  4. Nginx防盗链,Nginx访问控制, Nginx解析php相关配置, Nginx代理

    2019独角兽企业重金招聘Python工程师标准>>> Nginx防盗链 Nginx防盗链配置需要与不记录日志和过期时间结合在一起,因为都用到了location. 打开配置文件,注释 ...

  5. Asp.net下实现隐藏真实下载地址(可以实现简单的防盗链)

    现在随着FlashGet和xunlei等下载工具的日益普及,下载网站的一些下载地址都能直接被捕获到,,但是有些时候为了防盗链或权限限制不想对地址进行暴露,对于Asp.net下的防盗链有很多方法,我这里 ...

  6. Nginx+keepalived 实现高可用,防盗链及动静分离配置

    一.Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好, ...

  7. nginx rewrite重写与防盗链配置

    nginx rewrite重写规则与防盗链配置方法 时间:2016-02-04 15:16:58来源:网络 导读:nginx rewrite重写规则与防盗链配置方法,rewrite规则格式中flag标 ...

  8. nginx的配置和优化(隐藏版本号、gzip、expires、防盗链......等)

    Nginx配置和优化 1.隐藏版本号 默认情况下,使用curl命令会把nginx的版本信息等获取到,如: [root@transit_machine ~]# curl -I -H"www.b ...

  9. Nginx使用http_accesskey_module防盗链,告别referer,告别伪装

    Nginx使用http_accesskey_module防盗链,告别referer,告别伪装 传统的防盗链很多是依赖referer,比如apache的rewrite模块,根据规则判断referer,这 ...

最新文章

  1. Oracle 10g Toad查看 表空间 报错 ORA-00600 internal error code arguments [ktfbhget-4], [6], [5]...
  2. 深度学习核心技术精讲100篇(三十二)-网易实时数仓实战应用
  3. 4,postman和newman的联合使用
  4. 程序编译时书写Makefile注意事项一例
  5. Android_Bitmap_图片的二次采样并生成缩略图
  6. java多线程交替打印_java多线程 更优雅的实现线程同步:交替打印A、B LockSupport实现...
  7. mysql有哪些特色SQL语句_Linux-MySQL-有哪些常用sql语句
  8. 手机支付需厘清六大关键问题
  9. 实践Hive的点点滴滴
  10. Python编写远程控制工具
  11. 贴吧手工自动发帖软件
  12. 云计算导论第二章习题总结
  13. 华为手机信息不弹屏了为什么_华为微信不弹出新消息提醒 怎么办
  14. 按下组合键 可以迅速锁定计算机,电脑快速锁屏快捷键
  15. Android 关于TextView 默认显示英文字母大写问题
  16. Journal日志与oplog日志的区别
  17. 不积跬步无以至千里,不积小流无以成江海----SAX读取xml
  18. Java 【求一个整数是否为2的倍数】
  19. QT使用windowsAPI函数提示error LNK2019: 无法解析的外部符号 该符号在函数 _main 中被引用解决方案
  20. 九宫格控件NineGridView

热门文章

  1. 装修就选集成墙板装饰材料
  2. Avalon 总线 时序 介绍
  3. 【测开】在线音乐服务器测试报告
  4. Python递归实现猴子吃桃问题
  5. Strings和StringUtils
  6. ubuntu root 用户切换到普通用户
  7. extremedb同步mysql_eXtremeDB相关问题解答(3)
  8. 苹果6s暂停预约,疑似货源不足
  9. 新手做网站教程(手把手教你做网站)
  10. VT System_VT7900