Image 恶意照片上传检测与防范

Image 恶意照片上传检测与防范,image,security,image-processing,social,malware,Image,Security,Image Processing,Social,Malware,我正在进行一个项目,该项目将允许用户创建帖子和上传照片,供公众查看。我需要做什么来确保上传的图像不是恶意的 我环顾四周,发现有一些不同的想法。其中一些想法是调整图像大小、检查mime类型和剥离元数据。考虑到恶意用户的发展和最近病毒的传播,它们似乎都是不够的 有人能推荐这方面的最佳实践吗?通过JavaScript,可以使用Canvas(定义宽度、高度和回调-函数)来完成: var img=newimage(); img.onload=函数(){ var o=jQuery(“”) var ctx=o

我正在进行一个项目,该项目将允许用户创建帖子和上传照片,供公众查看。我需要做什么来确保上传的图像不是恶意的

我环顾四周,发现有一些不同的想法。其中一些想法是调整图像大小、检查mime类型和剥离元数据。考虑到恶意用户的发展和最近病毒的传播,它们似乎都是不够的


有人能推荐这方面的最佳实践吗?

通过JavaScript,可以使用Canvas(定义
宽度
高度
回调
-函数)来完成:

var img=newimage();
img.onload=函数(){
var o=jQuery(“”)
var ctx=o[0].getContext(“2d”);
ctx.drawImage(img,0,0,宽度,高度);
回调(o[0].toDataURL(“图像/png”)、宽度、高度);
o、 删除();
};

在服务器端存在许多不同的技术来验证图像,请澄清您的服务器语言。

似乎您的问题与感谢您的输入有关。你提到的帖子谈到了sql注入。我要寻找的是防止用户使用我们的图像上传程序上传带有图像扩展名(.jpg、.png等)的文件,但该文件实际上是一个病毒。要保护病毒,只需使用:
$clamAv=clamAv::createClamAvDefaultConfig()$clamAv->checkArrayOfFiles($\u文件)我可能会在aws lambda上使用node。检查node.js下的列表()以获得病毒保护
var img = new Image();
img.onload = function() {
    var o = jQuery('<canvas width="' + width + 'px" height="' + height + 'px" />')
    var ctx = o[0].getContext("2d");
    ctx.drawImage(img, 0, 0, width, height);
    callback(o[0].toDataURL("image/png"), width, height);
    o.remove();
};