2013-06-20 61 views
0

什麼是最好的方式來保護我的網站上傳的文件,在評論中有php?有沒有辦法只從評論中刪除上傳的圖片?

我的網站允許圖片上傳,目前只能上傳有效圖片,但有效圖片仍可以在評論中寫入代碼。 有沒有辦法檢查圖片的評論?或者,我唯一的選擇是從所有元數據中去除圖像?如果我從元數據中刪除我的圖像,那會有什麼後果呢?

+0

什麼風險並具有在評論PHP代碼圖像的元數據對你構成了什麼?你在執行任何你在元數據中找到的東西嗎如果是這樣,爲什麼? – Quentin

+0

這只是一個額外的預防措施。我沒有執行任何圖像。但如果有人設法編輯我的.htaccess文件,那麼上傳的圖像突然成爲威脅。 – user25312

回答

0

昆汀部分地說如果你的配置是正確的,那麼這些圖像就不應該被PHP解釋器解析 - 但最好不要依靠單一的防線。

在很多司法管轄區,(正確)非法(或至少違反合同)從內容,數字或其他方面刪除版權信息。因此故意剝離元數據可能會給你帶來很多麻煩。

如果是我,我會:

1)確保我的配置並沒有讓任何沒有指定的擴展名由PHP解釋器

2)確保我的應用程序沒有運行允許在上傳內容上重命名擴展名

3)對圖像應用一些轉換(旋轉/縮放/更改格式)以消除它可能包含的某些惡意軟件(例如CVE-2013-1331),保留exif數據

4)通過代理腳本

5)逸出在Exif數據的PHP開口的任何發生和結束標記保持文檔根和控制訪問之外的內容

+0

希望獲得一個簡單的溶劑,包括從評論中剝離圖像。但我想潛入配置只允許PHP文件運行PHP,也可能潛在地涵蓋其他安全問題。 – user25312

0

您可以獲取他們添加的評論,並在其上運行「addslashes」方法。

http://php.net/manual/en/function.addslashes.php

這樣就不會有跨站腳本或代碼注入的風險。

+0

這不是解決問題的方法 - 並且addslashes不是解決這類問題的通用方法。如果可以向站點注入足夠的代碼來解決XSS攻擊,那麼使用圖像元數據作爲傳遞向量的一部分似乎有點愚蠢。 – symcbean

1

這很容易剝去元(普通GD擴展名):

$img = imagecreatefromjpeg("uploaded_img.jpg"); 
imagejpeg($img, "stripped_img.jpg", 100); 
imagedestroy($img); 

事實上,沒有什麼可擔心的(如果你不執行裏面的代碼 - 我真的高度懷疑)。

相關問題