2016-06-12 66 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/