tessera

扫毒

上传先交给扫毒服务,扫完才能取件。默认关

上传的文件可以在发出去之前先给外部的扫毒服务检查。默认关,设了 scan.url 就会开。

clamd://clamav:3310
https://scanner.example.com/scan

clamd:// 地址直接跟 ClamAV 讲话。http(s):// 地址是任何你挡在扫毒软件前面的服务;它如果需要授权请求头,那个请求头跟其他凭证一样是封起来存的。

访客会遇到什么

干净 有毒 扫毒服务挂了 上传完成 等扫毒 可以取件 分享被停用 先放行之后再扫

扫完之前,分享打得开但取不走,而且试了也不花任何东西。命令行客户端会自己等,最多五分钟。

一个文件被判定有毒,整份分享就会被停用,跟管理员停用一模一样。威胁的名字会留着,显示在后台的分享列表里。

上传的人在上传完成的画面和自己的分享列表上,都看得到扫描的进度和结果。因为有毒被停用的分享会直接写明,不会看起来像过期。

扫毒服务挂掉的时候

扫毒失败时是放行的

连不上、超时或回错误的话,等着的文件会被放行,而不是卡住。它们每三十秒、或有新上传进来时会再扫一次,之后才被判定有毒的,那时就会被停用。这段期间被取走的文件,是没扫过就被取走的。

后台会显示扫描服务上一次有没有响应、失败的原因,以及还在等和没扫就放行的文件数。闲着的扫描服务每 15 分钟会收到一个空文件,失败中的每 5 分钟一次,所以没人上传时状态也是最新的。

把扫毒关掉,还在等的全部会被放行。

不会被扫的

  • 端对端加密的分享。 扫毒软件只看得到封起来的字节。
  • 比扫毒服务收得下还大的文件。 ClamAV 有它自己的大小上限,超过的会被放行并标成太大,不会被拒绝。
  • 链接分享,里面只有一个网址,没有文件。

自己写 HTTP 适配

不是 ClamAV 的扫毒软件,HTTP 服务会收到一个 POST,body 就是文件内容(流式),要回:

响应意思
200 {"clean": true}干净
200 {"clean": false, "threat": "…"}有毒
413太大扫不了
其他任何响应,或没回扫毒服务挂了

一次扫四个文件。

接下来

本页内容