Shell-Script
用於確定明顯圖像文件是否為真實圖像文件的腳本
我想創建一個 shell 腳本,它會檢查以確保目錄中表面上看起來是圖像文件的所有文件(例如,具有典型的圖像文件副檔名,如 .jpg、.bmp 等)實際上是圖像文件。
我們最近遇到了一個問題,黑客能夠在目錄中生成文件並將其屏蔽為 .jpg 文件。我想創建一個 shell 腳本來檢查目錄中的所有文件,以確保它們是真正的 jpg、gif 或 png 文件。
我認為您要非常小心地
file
在您提供完全不受信任的輸入的情況下使用。例如,RHEL 5file
將辨識這一點:GIF87a <?php echo "Hello from PHP!\n"; ?>
作為“GIF 圖像數據,版本 87a,15370 x 28735”。PHP 解釋器可以毫無問題地執行該輸入。沒有麻煩是“本地文件包含”(LFI)問題的基礎。
其次,
file
(甚至strings
)實際上解析輸入文件以告訴您您想知道的內容。這些解析器很複雜並且有問題。我將建議使用ImageMagick套件
identify
中的命令。它並沒有被我上面的簡單範例所迷惑,它只正確解析圖像文件,因此它應該比.file