2016-06-12 71 views

回答

1

如果它被上傳到數據庫..不是100%確定。我認爲這不會被發現。數據庫必須由AV掃描。大多數AV排除性能的數據庫。如果它直接存儲在文件系統中,它可能會被隔離

因此,獲取該文件,創建一個php函數以生成文件本身的Sha256哈希,並使用VirusTotal API掃描文件。如果它有/來自任何供應商的病毒,則可以清除該文件。如果您需要一個特殊的白名單,那麼創建一個白名單並創建您自己的自定義表格,以便使用SHA256哈希將白名單文件列入白名單。

因此,一旦用戶的文件上傳,只是留下一個通知,它正在審查主持人。然後有一個cron job/sch任務,每30分鐘檢查一次哈希結果。在您的UserUploads表中爲FileHash和安全/病毒字段添加一些額外的字段。您希望將這兩個字段分開,或者只需在安全字段中使用0,1,2來合併病毒/安全字段。所以用戶的文件從0開始...如果它的掃描和安全,它會得到1,如果它確認病毒它得到2.您可以發送電子郵件給用戶說,這個文件被感染,並允許他們發送72小時左右的回覆。如果只是誤報,您可以通過將字段更新爲1來將散列列入白名單。您可以先掃描自己的數據庫以查看其他用戶是否正在上傳相同的文件,如果它們存在於DB &他們的安全域設置爲1。

暗示表:

FileUploadHash UserID Safe Virus FileName Blobdata 
-------------- ------- ---- ----- ---------- --------- 
SHA256 Hash  ######  0  1 xyajss.pdf {bin vomit} 
SHA256 Hash  ######  1  0 2021jf.png {bin vomit} 

所以做你的循環通這些結果,並清除其中的病毒= 1清除該文件併發送電子郵件給用戶,他們的文件被認爲是不安全的,並在行政上被刪除....道歉...不便... ..等等等等。然後,您可以允許用戶根據「安全」字段進行訪問。所以,如果文件是安全的...做xyz加載使您的網站上的文件內容可用。

這裏是對VirusTotal Api的參考。他們字面上有幾十種編碼語言和實現的代碼。

https://www.virustotal.com/en/documentation/public-api/