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太大掃不了
其他任何回應,或沒回掃毒服務掛了

一次掃四個檔案。

接下來

本頁內容