2017-05-29 78 views
0

我正在開發一個項目,該項目將允許用戶創建帖子並上傳照片供公衆查看。我需要做些什麼來確保正在上傳的圖像不是惡意的?惡意照片上傳檢測和預防

我環顧四周,有一些不同的想法拋出。一些想法是調整圖像大小,檢查MIME類型並剝離元數據。考慮到惡意用戶和近期病毒傳播的進展,它們似乎都不夠。

任何人都可以爲此提出最佳做法嗎?

+0

似乎你的問題與https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?rq=1 –

+0

感謝您的意見。你提到的帖子是關於sql注入的。我在尋找的是防止用戶使用我們的圖片上傳器上傳帶有圖片擴展名(.jpg,.png等)的文件,但該文件真的是病毒。 – AkivaL

+0

對於病毒防護只是使用:'$ clamAv = ClamAv :: createClamAvDefaultConfig(); $ clamAv-> checkArrayOfFiles($ _ FILES);' – FieryCat

回答

0

通過JavaScript可以通過使用Canvas來完成(確定widthheightcallback - 功能):

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(); 
}; 

在服務器上存在相當多的不同的技術來驗證圖像,請澄清你的服務器語言。

+0

我可能會在aws lambda上使用節點。 – AkivaL

+0

在node.js下查看該列表(https://www.npmjs.com/browse/keyword/clamav)以獲得病毒防護 https://github.com/kylefarris/clamscan/blob/master/index.js – FieryCat