首页 新闻 会员 周边

kkfile预览文件名包含#的文件会跳转到安全提示页面

0
悬赏园豆:100 [待解决问题]

预览不包含#的文件时可以正常预览,但是只要预览文件名中包含#的文件,不管是在开头,结尾还是中间都会跳转到安全提示页面,我想了解一下原因并且想知道怎么解决

红皮烤肠超人的主页 红皮烤肠超人 | 初学一级 | 园豆:102
提问于:2026-08-07 11:49
< >
分享
所有回答(2)
0

可以下载kkfile的源码,用AI分析一下

随风行云 | 园豆:969 (小虾三级) | 2026-08-07 17:39
0

这是因为 # 在 URL 中是片段标识符(fragment identifier),浏览器遇到 # 会把后面的内容当作页面锚点而不是文件名的一部分。kkfile 预览时把文件名拼进 URL,# 之后的字符被浏览器截断,服务端拿到的文件名不完整,触发安全校验跳转。

解决方向有两个:

  1. 前端 encode:文件名传入 kkfile 前用 encodeURIComponent 编码,# 会被编码成 %23,服务端 decode 后还原。这是最直接的修法。

  2. 服务端兜底:在 kkfile 的 URL 解析逻辑里,对获取到的文件名参数做一次完整校验,如果检测到编码后的 %23 再做 decode。防止前端漏编码的情况。

如果改不了 kkfile 源码,临时方案是把文件名中的 # 替换掉再预览。

badhope33834 | 园豆:276 (菜鸟二级) | 2026-09-05 08:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册