php上传图片,如果上传的文件包含病毒怎么办

时间:2016-06-12 05:39:24

标签: file-upload

我问如果上传的文件形成一个html表单包含病毒......

如果服务器有一个好的防病毒软件,它会做什么?它会自动阻止文件上传吗?或者我应该做一些编码以确定它是一个健康的文件?

1 个答案:

答案 0 :(得分:1)

如果它被上传到数据库..不是100%肯定。我认为不会被发现。 AV必须扫描数据库。大多数AV排除了DB的性能。如果它直接存储在文件系统中,它可能会隔离

所以拿起文件,创建一个php函数来生成文件本身的Sha256 Hash并使用VirusTotal API扫描文件。如果它有/来自任何供应商的病毒,您可以清除该文件。如果您需要特殊的白名单,请创建白名单并使用SHA256哈希为白名单文件创建自己的自定义表。

因此,一旦上传了用户的文件,只需留下通知,即主持人正在检查该文件。然后有一个cron job / sch任务,每30分钟检查一次哈希结果。在UserHash的UserUploads表中有一些额外的字段,以及一个安全/病毒字段。您希望将这两个字段分开,或者只是在“安全”字段中使用0,1,2来合并“病毒/安全”字段。所以用户的文件从0开始...如果它被扫描并且安全,它得到1,如果它被确认为病毒它得到2.你可以向用户发送一封电子邮件说,这个文件被感染并允许它们发送回复超过72小时左右。如果它只是误报,您可以通过将字段更新为1来自行将哈希列入白名单。您可以先扫描自己的数据库以查看其他用户是否正在上传相同的文件来减少您的工作量,如果它们存在于您的文件中,则自动将它们列入白名单DB&他们的安全字段设置为1。

暗示表:

var itemArray = json['itemArray'];
for (var i = 1; i < itemArray.Item.length; i++) {
 var obj = itemArray.Item[i];
 for (var key in obj) {             
   quantitySold = obj['SellingStatus']['QuantitySold'];

 }

通过这些结果进行循环并清除病毒= 1的位置。清除文件并向用户发送一封电子邮件,告知用户他们的文件不安全并且已被管理删除....道歉......不方便......等等等等。然后,您可以允许用户基于“安全”字段进行访问。因此,如果文件是安全的...请执行xyz加载以使您的网站上的文件内容可用。

这是VirusTotal Api的参考。它们实际上具有许多编码语言和实现的代码。

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