我正在測試我的php表單並將所有請求記錄到一個單獨的文件中。目的是找出表單是否被用於垃圾郵件並希望將其清除。f77有777權限是否危險?
使用fwrite()
記錄請求時,使用777權限是危險還是不必要?什麼是替代方案?
我正在測試我的php表單並將所有請求記錄到一個單獨的文件中。目的是找出表單是否被用於垃圾郵件並希望將其清除。f77有777權限是否危險?
使用fwrite()
記錄請求時,使用777權限是危險還是不必要?什麼是替代方案?
您只需要運行該應用程序的用戶的權限即可寫入該文件。管理員能夠讀取文件有時也很方便。除此之外,沒有人需要訪問。因此,0640
是這種文件最合理的權限。
特別是,沒有人需要執行該文件,這是使用0777
設置的位之一。執行位僅用於目錄。 (和可執行程序,但是這不是在這裏打球。)
0640 = user/owner read/write, group read only, other no access
0777 = user/owner read/write/execute, group read/write/execute, other read/write/execute
的umask
是獲得許可權非常有用。您可以使用umask
來設置權限模板,而不是創建具有明確權限的文件。由於目錄需要可執行權限,並且文件不需要,因此umask
將爲不同類型的文件更明確地屏蔽權限,而不是明確設置它們。例如,在您的情況下:
umask(027); // Owner permissions unchanged, Group permissions mask 2, drop all other permissions
fopen('foo', 'w', 0777); // Creates file with *0640* permissions, because of mask
mkdir('bar', 0777); // Creates dir with *0750* permissions, because of mask
當我將640權限應用到文件夾時,我不再能夠查看窗體... – user3216933
@ user3216933文件應該是0640,目錄應該是0750.前導零表示該數字是八進制數 - 如果您離開前導零,這是一個完全不同的值。請看我的更新並使用'umask'。 – kojiro
我製作了所有文件0640和目錄0750.但是現在我得到了一個「禁止」的錯誤,而不再是404. – user3216933
777權限設置默認由父目錄或php設置。 您可以通過chmod("/somedir/somefile", 0640);
Check manual
改變它,是的,這是雄心勃勃的,可能是危險的對通過形式創建的文件的可執行權限。
祝你好運!
默認情況下設置的'0777'權限旨在與['umask'](http://www.php.net/manual/en/function.umask.php)一起使用,以實現合理的權限。 (還要注意前導零對於解釋爲八進制的值很重要。) – kojiro
執行是不必要的(最後一位) – armadadrive