2010-01-19 145 views
0

我有一個PHP文件,我基本上給我的密碼給我所有的用戶。我想成爲唯一一個能夠查看內容並查看頁面的人。最好的辦法是做什麼?安全PHP文件

密碼保護?需要一個特殊的cookie,只有我有?

給我一些想法..

+0

這些是您網站上用戶的密碼嗎?或者,您是否已經爲自己編寫密碼以保存自己的密碼? – 2010-01-19 03:41:05

回答

1

如果你想能夠看到,如果通過瀏覽器,請嘗試以下:

查找到WWW基本身份驗證,這將主要有瀏覽器提示您用戶名和密碼。

http://www.htaccesstools.com/htaccess-authentication/
http://eregie.premier-ministre.gouv.fr/manual/howto/auth.html

如果你有一個靜態IP地址,你可以確保只有您的IP地址可以看到頁面:

if($_SERVER['REMOTE_ADDR'] != '192.168.1.1') 
{ 
     die(); 
} 

如果不設被瀏覽器看到,最好的解決方案是將文件放在DocumentRoot上面。又名:

如果你的index.php文件是/路徑/要/根/的public_html放在/路徑文件/要/根

+1

除非Web服務器存在修改請求(例如大寫文件擴展名)下載文件內容的錯誤。 – atk 2010-01-19 03:35:19

+0

刪除了該部分。 – 2010-01-19 03:41:59

+0

basic authn也有缺陷。瀏覽器通常會緩存身份驗證信息,並在每次請求時重新發送,即使單擊「註銷」鏈接,也會使共享終端不安全,無需重新啓動瀏覽器。 – atk 2010-01-19 04:32:51

12

我建議你停止存儲密碼和改爲存儲密碼的散列。即使你不應該知道用戶的密碼。

你正在做什麼甚至沒有認證或授權。充其量是鑑定。如果你這麼做的話,Chacha102說了些什麼,再加上你還想要chgrp和chmod,這樣只有互聯網用戶和你的用戶才能看到它。

0

如果你存儲在一個wwwroot下的一個位置的所有數據,那麼你就有可能在文件的下載,無論是通過安全漏洞的錯誤的配置。此解決方案還可能包含用戶和密碼的硬編碼,這使得密碼輪轉更加困難。如果用戶可以更改文件中的值,那麼必須非常小心,他們不能將PHP代碼注入密碼文件,否則他們將能夠接管您的應用程序。而管理員查看明文密碼的能力被認爲是不好的做法,應該避免。

現代最好的做法是不是這樣做的,如果在所有可能的。將數據存儲在Web服務器通常不允許直接下載的位置(例如wwwroot之外或您已經防止SQL注入問題的數據庫中),實施身份驗證和授權方案,並依賴該方案控制誰可以做什麼。

退房www.owasp.org,以獲得更多的細節 - 這是一個很好的起點。

1

不要存儲用戶密碼以明文在數據庫中哈希他們。

因爲我假設你需要爲用戶登錄的功能,我建議創建一個腳本,它可以讓管理員帳戶(您可以識別不過你想要的)任何用戶登錄。