小樱 发表于 2017/9/12 20:46

kangle referer防盗链允许空值访问写法,解决部分手机移动端浏览器视频播放兼容性问题

需求版本3.5.10.3或者以上

直接写-代表空值
例如这样就是允许空值访问和www.itzmx.com的来源,如果不增加,那么默认会拦截空值进行拒绝访问,要允许空值访问添加方法如下
referer写
-|www.itzmx.com
该字符代表空值,|是分隔符,空值是-,写成-|是为了好理解
-|

file_ext写上视频格式
mp4




补充:上面例子写的不是防盗链,如果要防盗链,目标要改成拒绝,并且勾选referer的非

uddd 发表于 2020/9/29 08:08

这个办法‘file_ext’处只能写视频格式吗,其他的图片可以么,比如 jpeg 之类的

小樱 发表于 2020/9/29 18:44

uddd 发表于 2020/9/29 08:08
这个办法‘file_ext’处只能写视频格式吗,其他的图片可以么,比如 jpeg 之类的

http://wiki.kangleweb.com/Kangle%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%E6%A8%A1%E5%9D%97#file_ext
官方wiki也有详细说明,这个是格式匹配模块,支持任何一个格式写法

uddd 发表于 2020/9/29 19:36

小樱 发表于 2020/9/29 18:44
http://wiki.kangleweb.com/Kangle%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%E6%A8%A1%E5%9D%97#file_ext
...

试验了一下午,例如:
PC端:
http和https链接的mp4文件本帖方法有效防止盗链,
对http链接的gif文件无效,对https链接的gif文件有效
移动端:
对http链接的MP4文件无效(但改成强制https后就有效了),对https链接的MP4文件有效
对http链接的gif文件无效,对https链接的gif文件有效

总结:
本帖的写法只对MP4这类的音视频有效果,对于GIF,jpeg,图的文件无效,并且PC端和移动端不同,还受HTTPS和HTTP的影响,所以对于图片文件类链接,有其他的有效的方法防盗链写法么

小樱 发表于 2020/9/29 19:59

uddd 发表于 2020/9/29 19:36
试验了一下午,例如:
PC端:
http和https链接的mp4文件本帖方法有效防止盗链,


完全有效的,你检查下CDN缓存,清理下缓存在试试

uddd 发表于 2020/9/29 20:17

小樱 发表于 2020/9/29 19:59
完全有效的,你检查下CDN缓存,清理下缓存在试试

刚才检查了一下CDN反代缓存,跟那个没有关系,按照本帖的设置方法,GIF的文件链接防不了,,,
设置环境如下:
B机反代了A源机,链接文件是放在A源机内的,B机是kangle3311设置好之后,拿到一个没有用CDN直接用C源机的网站测试了一下,结果如上述,

uddd 发表于 2020/9/29 20:36

然后刚才检查了一下,突然发现,每次提交设置后,这边都会自动在“-”空值后面多一个“|”分隔号,删也删不掉,,,,,

小樱 发表于 2020/9/29 21:19

uddd 发表于 2020/9/29 20:36
然后刚才检查了一下,突然发现,每次提交设置后,这边都会自动在“-”空值后面多一个“|”分隔号,删也删不 ...

-|是正常的,|是分隔符,代表不同表单的域名设置

小樱 发表于 2020/9/29 21:20

uddd 发表于 2020/9/29 20:17
刚才检查了一下CDN反代缓存,跟那个没有关系,按照本帖的设置方法,GIF的文件链接防不了,,,
设置环境 ...

我这刚测试了正常,没有出现你说的问题,你可以浏览器中F12网络抓包调试看看是不是网站程序代码中没有发起referer?
https://bbs.itzmx.com/thread-95880-1-1.html

uddd 发表于 2020/9/29 22:01

小樱 发表于 2020/9/29 21:19
-|是正常的,|是分隔符,代表不同表单的域名设置

正常的是“-|”而我这个是“-||” 多了一个“|” 还删不掉,,,

小樱 发表于 2020/9/29 22:11

uddd 发表于 2020/9/29 22:01
正常的是“-|”而我这个是“-||” 多了一个“|” 还删不掉,,,

这个不影响的,两个||中间没内容,那么中间这里就不生效

uddd 发表于 2020/9/29 22:14

小樱 发表于 2020/9/29 21:20
我这刚测试了正常,没有出现你说的问题,你可以浏览器中F12网络抓包调试看看是不是网站程序代码中没有 ...

你把外链写成 “http”的再看看能不能用,我试了“https” 和 不加前面的都有效,但是只要写http的外链文件就不行

小樱 发表于 2020/9/29 23:50

uddd 发表于 2020/9/29 22:14
你把外链写成 “http”的再看看能不能用,我试了“https” 和 不加前面的都有效,但是只要写http的外链文 ...

都试过,不存在问题,你有出问题的页面吗?贴出来看看,或者你F12网络抓包一下看具体是什么问题引起不能用

uddd 发表于 2020/9/30 00:25

小樱 发表于 2020/9/29 23:50
都试过,不存在问题,你有出问题的页面吗?贴出来看看,或者你F12网络抓包一下看具体是什么问题引起不 ...

我实在找不到原因,刚才我把之前的方法全都删了,然后试用了一下这位坛友的方案,完美解决,PC和移动端都没有问题,但是有个疑问,如果我把本帖https://bbs.itzmx.com/forum.php?mod=viewthread&tid=18800&page=1#pid418236的方法和这位坛友的办法一起用,那么本帖这个效果还会存在么,或者他那个方法会失效么,因为我想要“允许空值访问”这项,或者可不可以直接在下图匹配模块“header”内VAL里面的域名前面加上“-|”直接达到我想要的“允许空值访问”这项目的{:1320:}

https://bbs.itzmx.com/forum.php?mod=viewthread&tid=7804&pid=418197&page=1&extra=#pid418197

小樱 发表于 2020/9/30 01:01

uddd 发表于 2020/9/30 00:25
我实在找不到原因,刚才我把之前的方法全都删了,然后试用了一下这位坛友的方案,完美解决,PC和移动端都 ...

https://bbs.itzmx.com/thread-7880-1-1.html
这是数据流向图,可以同时使用多个规则,所以才有编号,编号越小,优先级越高,哪个先成功执行命中就走哪个
header模块不支持-|写法,-|功能仅在referer模块生效,但是header模块支持regex(正则)功能,可以写个不允许为空的正则,你可以网上找点正则例子,,我也不太了解正则
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions

页: [1]
查看完整版本: kangle referer防盗链允许空值访问写法,解决部分手机移动端浏览器视频播放兼容性问题