185186826 发表于 2016-08-11 17:46

FastDFS防盗链不失效问题,是不失效,不失效。


我使用的FastDFS_v4.06,在成功搭建好集群之后,开启防盗链,使用c#客户端生成的token成功的访问到了服务器上的文件,但是在15分钟之后(我的http.anti_steal.token_ttl设置的是900),仍能使用该token和时间戳去访问服务器上的文件。为什么token没有失效,谁能告诉我为什么。

c#代码
    DateTime start = new DateTime(1970, 1, 1);
            DateTime end = DateTime.Now;
            TimeSpan consume = (TimeSpan)(end - start);
            int ts = (int)(consume.TotalSeconds);
            string pwd = FastDFS.Client.Util.GetToken("M00/00/00/wKjRllegB76AXJJdAAEAJCt2lo0642.jpg", ts, "cola185186826");
            string anti_steel_url = "localhost/M00/00/00/wKjRllegB76AXJJdAAEAJCt2lo0642.jpg?token=" + pwd + "&ts=" + ts;
            
            using (WebClient web = new WebClient())
            {
                web.DownloadFile(anti_steel_url, "G:\\sola.jpg");
            }
            Console.WriteLine("Complete");
            Console.Read();

http.conf配置
http.mime_types_filename=mime.types
http.anti_steal.check_token=true
http.anti_steal.token_ttl=900
http.anti_steal.secret_key=cola185186826
http.anti_steal.token_check_fail=/home/cola/anti-steal.jpg

185186826 发表于 2016-08-12 10:21

没人回答吗?我都等一天了。求大神告诉,谢谢

happy_fish100 发表于 2016-08-12 16:01

ts是unix timestamp,单位为秒。
你把ts打印出来看看,看和服务器的date +%s 输出差异有多大。

185186826 发表于 2016-08-12 18:03

根据您的回复我已经看过了,因为之前服务器和测试的机器都做个时钟同步,所以测试机器和服务器之前的时间戳相差不到1秒钟。还有其他的原因吗?谢谢回复 3# happy_fish100


   

happy_fish100 发表于 2016-08-12 18:06

确认一下访问这个链接是否经过了fastdfs扩展模块

185186826 发表于 2016-08-15 09:32

首先谢谢您的指导,我不清楚有没有经过这个模块,但是我的防盗链是起作用的,但是跟我设置的http.conf的时间有很大出入,经过之前的测试,token会在第二天才失效。http.conf不起作用。回复 5# happy_fish100


   
页: [1]
查看完整版本: FastDFS防盗链不失效问题,是不失效,不失效。