免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 13863 | 回复: 14
打印 上一主题 下一主题

[FastDFS] 使用FastDFS的内置防盗链功能 [复制链接]

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-17 16:03 |只看该作者 |倒序浏览
本帖最后由 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

论坛徽章:
0
2 [报告]
发表于 2012-08-21 14:48 |只看该作者
token的生成算法是什么呢?
md5(文件ID+私钥+时间戳)么?

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
3 [报告]
发表于 2012-08-21 16:25 |只看该作者
回复 2# yibin001

恩,差不多就是这样的。

论坛徽章:
0
4 [报告]
发表于 2012-08-21 16:38 |只看该作者
终于等到老大的回复。
但我按这种算法得到的token除到文件ID之后,却无法访问,服务器上debug时得到的结果是token不匹配。
我用的是c#客户端,单步调试看到算法,现在我不知道该怎么弄了。

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
5 [报告]
发表于 2012-08-21 17:31 |只看该作者
回复 4# yibin001

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

论坛徽章:
0
6 [报告]
发表于 2012-08-21 18:41 |只看该作者
回复 5# happy_fish100

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


   

论坛徽章:
0
7 [报告]
发表于 2012-10-24 19:14 |只看该作者
鱼兄,Java版本的客户端没有看到生成Token的API?是不是要自己实现呢?

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
8 [报告]
发表于 2012-10-25 09:28 |只看该作者
回复 7# monton

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

论坛徽章:
0
9 [报告]
发表于 2012-10-29 14:50 |只看该作者
抱歉,没有看仔细。谢谢鱼兄!

论坛徽章:
0
10 [报告]
发表于 2012-10-31 17:53 |只看该作者
余兄,我已经将http.anti_steal.check_token设置为true了,请问为什么我尝试只用了“?”前的url而没加token仍就能访问这个文件呢?正常不带token的话应该不能访问才对吧回复 1# happy_fish100


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP