2014-02-08 86 views
1

我需要在php腳本中使用imagemagick的轉換,所以我啓用了exec。只爲命令啓用php exec

現在我不想安全地讓exec被啓用,我想限制它只能用於「convert」命令。

有沒有辦法做到這一點?非常感謝

回答

4

您不能限制PHP exec函數的要執行的命令。此外,即使你做一些字符串檢查EXEC有「轉換」命令,我就可以這樣執行我的命令:

"convert img.jpg img.png ; id ; ls -al ; wget ....." 

因此,這不是一個解決方案。

解決方案:

一)不要讓高管,只是使用ImageMagick的PHP擴展: http://www.php.net/manual/en/book.imagick.php 這就像命令,但它的PHP擴展。您可以使用ImageMagick PHP擴展的命令行來完成您所做的一切。

b)正確設置文件權限,不允許通過網絡(至少PHP文件)上傳新文件,爲文件和文件夾設置適當的權限,檢查你的代碼是否存在SQL注入,文件包含攻擊等等。將有一個安全的服務器,現在如果你的服務器是安全的,你可以啓用exec。 c)編寫你自己的PHP擴展,它將得到convert命令的參數並運行它,然後在你的代碼中使用它。總的來說,你不能限制命令的執行,黑客也可以運行其他命令。