不久之前,我升級到了專用服務器,爲了讓它更具成本效益,我決定在服務器上向我認識的人(朋友,家人)租用一些空間。我認識的一些人有一些負責網站開發的人,我想保護自己免受未經授權的訪問,或者我租用的任何其他人。我該如何避免php進入某個目錄?
我最關心的一個案例是PHP通過從其根目錄訪問../
訪問其他用戶或我。
例如,他們可以這樣做:foreach(glob('../*/*.*') as $some_file){unlink($some_file);}
這將刪除同級用戶的所有文件。
我該如何避免人們做這種事情?
無論何時您將用戶輸入傳遞給文件訪問函數,都必須使用strpos()驗證是否存在「../」,並檢查是否存在NULL字節。 –
這個惡意行爲的名稱,順帶說一句,是[目錄遍歷攻擊](http://en.wikipedia.org/wiki/Directory_traversal_attack) –
我會使用一些設計用於管理機器的東西,例如cPanel&WHM(似乎大多數共享主機使用它);認爲它錯了可能是一個嚴重的問題 – 2012-11-22 02:28:36