Closed fengmk2 closed 5 months ago
配置文件后缀 yaml
、toml
XML
BTW,只检测后缀无法避免滥用情况,如:
m3u8
中的视频分段使用的是ts
文件,这会与白名单中的.ts
吻合。 或许还需要增加:File Magic Numbers
的判断 以及 最大文件大小的判断
XML
BTW,只检测后缀无法避免滥用情况,如:
m3u8
中的视频分段使用的是ts
文件,这会与白名单中的.ts
吻合。 或许还需要增加:File Magic Numbers
的判断 以及 最大文件大小的判断
File Magic Numbers 我对 ts 加一下判断
@fengmk2 刚刚看了下 MPEG-ts
的 data format,其第一个字节是 0x47
,对应了 ASCII 中的 G
字符,故,如果 ts 文件中的第一个字符是 G
的话,将会误判(虽然 TypeScript 文件的第一个字符几乎不可能是 G
)
如果想要更加严格,可参考: videojs
中的实现: https://github.com/videojs/vhs-utils/blob/61b8db9f2d9b3085efe56050a6ad430ff03be55e/src/containers.js#L107-L123
MPEG-ts
最小为:188
字节,并且其必须为 188 的整数倍。
我感觉小于256KB的文件就别判断了,我有些二进制的语言文件用的.js后缀,还是从流量异常上监控比较好,毕竟想盗用可以base64、base85、base ascii编码一下
.wasm也是二进制,而且格式也会变化 用 .woff2 / .wasm 后缀写个伪装的File Magic Numbers头
前端用service worker拦截请求,去掉这个File Magic Numbers头再给视频播放也不难,这个思路防不住的
不如根据 npm 包的流量和体积来判断, 用流量除以 https://www.npmjs.com/package/yaml?activeTab=dependents 数量(可以算个pagerank) , 发现异常的包 太大了就需要实名认证或者白名单,
网页后缀 html
@fengmk2 哥,我觉得这个功能最好关了好,安全第一,黑产灰产都是其次,涉政才是要命的。要做也建议就同步cdnjs,它有哪些包,咱就只支持哪些包。 v2ex看到这个帖子:https://www.v2ex.com/t/1047740
@fjc0k 这个没有准确消息吧
@fengmk2 只是觉得很难把内容审查做好,让上面满意,毕竟这玩意儿没有具体标准。与其留下个炸弹可能波及镜像服务被关闭,还不如提前预防。
允许的白名单后缀:
.js
,.ts
,.jsx
,.tsx
,.cjs
,.mjs
.css
,.less
,.sass
.json
,.json5
.yml
,.yaml
,.toml
,.xml
.axml
,.sjs
.wxml
.woff
,.woff2
,.eot
,.ttf
,.otf
.wasm
.md
,.markdown
.sql
.puml
文件名白名单:
README
LICENSE
,LICENSE.txt
AUTHORS
configure
,Makefile
Dockerfile
,.dockerignore
.gitignore
.eslintrc
,.eslintignore
.npmrc