關於圖片上傳安全的問題

來源:互聯網
上載者:User
一般我只檢查尾碼名,
比如上傳abc.jpg,最後放在/xxx/xxx.jpg

但是今天看見一篇文章
原理是一段代碼製作成JPG圖片,然後上傳。
這時就執行代碼?

我百度了很久找到的都是10年前的資料,而且好像這個東西跟ASP相關的?
我想問這個PHP是否也有這個漏洞?
檔案上傳時只檢查尾碼是否安全?


回複討論(解決方案)

php也一樣,上傳以後,最好先判斷是否是真實的圖片檔案,然後弄個透明浮水印上去,相當於“破壞”原圖

php也一樣,上傳以後,最好先判斷是否是真實的圖片檔案,然後弄個透明浮水印上去,相當於“破壞”原圖

如何判斷
加浮水印暫時沒有這個考慮

不安全...
一般我只檢查尾碼名,
比如上傳abc.jpg,最後放在/xxx/xxx.jpg

但是今天看見一篇文章
原理是一段代碼製作成JPG圖片,然後上傳。
這時就執行代碼?

我百度了很久找到的都是10年前的資料,而且好像這個東西跟ASP相關的?
我想問這個PHP是否也有這個漏洞?
檔案上傳時只檢查尾碼是否安全?


php也一樣,上傳以後,最好先判斷是否是真實的圖片檔案,然後弄個透明浮水印上去,相當於“破壞”原圖

如何判斷
加浮水印暫時沒有這個考慮

百度就有啊。。。

原來還有這樣的問題啊。。長見識了!

不安全...

應該檢查哪些項目?

百度就有啊。。。

getimagesize?

if (preg_match('/<\?php|eval|POST|base64_decode|base64_encode/i', @file_get_contents($_FILES['uploadfile']['tmp_name']), $m_err)) {
die('提示!禁止提交。該圖片含有禁止的代碼'.str_replace('?', '\?', $m_err[0]).'。');
}

if (preg_match('/<\?php|eval|POST|base64_decode|base64_encode/i', @file_get_contents($_FILES['uploadfile']['tmp_name']), $m_err)) {
die('提示!禁止提交。該圖片含有禁止的代碼'.str_replace('?', '\?', $m_err[0]).'。');
}

能不能給個簡單的圖片試一下,比如執行

1.你把所有存放圖片的目錄許可權都設為“可讀可寫不可執行”,包括臨時存放的目錄也是
2.檢查是否真實圖片,jpg等要切尾,切尾就是瞭解圖片格式,把圖片尾段“額外”的位元組扔掉,搜尋一下能找到相關文章

基本做好這兩點就相對安全了,尤其第一點相當重要

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.