使用FastDFS的内置防盗链功能

发布于 2022-09-16 08:40:10 字数 1440 浏览 10 评论 9

本帖最后由 happy_fish100 于 2011-02-17 16:24 编辑

FastDFS内置防盗链采用Token的方式。
token是带时效的,包含了文件ID、时间戳ts和密钥。
在设定的时间范围内,比如5分钟内,token是有效的。

FastDFS在URL中带上当前时间戳和带时效的token,参数名分别为ts和token。
FastDFS API中提供了生成token的算法,扩展模块中会对token进行检验。
token的生成和检验都在服务器端,因此不会存在安全问题。

链接示例:http://192.168.1.15:8080/group1/M01/01/01/wKgBD01c15nvKU1cAABAOeCdFS466570.c?token=b32cd06a53dea4376e43d71cc882f9cb&ts=1297930137

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检查失败,返回的文件内容,需指定本地文件名

配置示例如下:
# if use token to anti-steal
# default value is false (0)
http.anti_steal.check_token=false

# token TTL (time to live), seconds
# default value is 600
http.anti_steal.token_ttl=900

# 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=/home/yuqing/fastdfs/conf/anti-steal.jpg

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

野生奥特曼 2022-09-19 07:53:33

余兄,我已经将http.anti_steal.check_token设置为true了,请问为什么我尝试只用了“?”前的url而没加token仍就能访问这个文件呢?正常不带token的话应该不能访问才对吧回复 1# happy_fish100

   

笑看君怀她人 2022-09-19 07:53:21

抱歉,没有看仔细。谢谢鱼兄!

习惯成性 2022-09-19 07:50:35

回复 7# monton

已经提供了啊!在class ProtoCommon中。

紫瑟鸿黎 2022-09-19 07:48:19

鱼兄,Java版本的客户端没有看到生成Token的API?是不是要自己实现呢?

一世旳自豪 2022-09-19 07:33:18

回复 5# happy_fish100

看FAQ了,服务器时间检查过了,加密时也没有附带group信息。
明天用php的client试试吧,可惜php的client没有windows版本的~

   

生寂 2022-09-19 07:25:15

回复 4# yibin001

看一下论坛中的FAQ吧,有相关的一条,呵呵。

檐上三寸雪 2022-09-19 06:03:09

终于等到老大的回复。
但我按这种算法得到的token除到文件ID之后,却无法访问,服务器上debug时得到的结果是token不匹配。
我用的是c#客户端,单步调试看到算法,现在我不知道该怎么弄了。

断念 2022-09-19 04:39:19

回复 2# yibin001

恩,差不多就是这样的。

丶视觉 2022-09-18 17:09:53

token的生成算法是什么呢?
md5(文件ID+私钥+时间戳)么?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文