2011-05-10 95 views
1

連接到mySQL數據庫時,登錄信息是否應加密?例如,如果你有這個:加密數據庫登錄信息

 

$dbuser = "test"; 
$dbpass = "1234"; 
mysql_connect("localhost", $dbuser, $dbpass); 
 

那麼用戶名和密碼可以被攻擊者攔截嗎?如果是這樣,你如何加密數據,使其不會發生?

回答

1

我認爲通過發送的所有信息都是不安全的 HTTP有可能是正確的。

已經有一個解決方案,您的問題,即使用HTTPS,我認爲,它使用RSA算法編碼發送的所有內容。

哦:如果mySQL服務器在同一臺計算機上(正弦表示您指的是localhost),我認爲這不是問題。 也許有人可以確認/否認

它不能傷害,雖然使用HTTPS,只要你處理敏感數據,我想。 即使它在同一臺服務器上。

此外,我認爲最好的做法是添加多個安全層,因爲您無法預測其中一個失敗的時間。

0

通常你把這些信息放在一個不同的文件中,並且你用include語句在你的其他php文件中包含該文件。確保只有你有該文件的讀/寫權限。

1

如果你想確保PHP和MySQL之間的connnection安全偷聽,然後強制SSL連接:

mysql_connect("localhost", $dbuser, $dbpass, false, MYSQL_CLIENT_SSL); 

如果你的問題是關於共同主辦的,有人讀出的配置數據,那麼你經常不走運。你需要一個支持suxec/suphp的專業主機託管來將文件權限更改爲更安全的內容。

+0

所以**這是**你如何在HTTP中實現安全連接?我從來沒有看過它..這是簡單的嗎? – 2011-05-10 00:39:44

+0

我可以相應地更改文件權限,但我沒有ssl證書。有沒有什麼辦法可以在沒有ssl的情況下加密數據? – FrozenWasteland 2011-05-10 00:40:02

+0

@Felipe:不,這與HTTP無關。這只是針對mysql套接字(兩臺機器上的網絡服務器和數據庫服務器)的SSL加密。 – mario 2011-05-10 00:41:19

1

我想他問的是如果代碼和服務器之間的登錄信息應該加密。作爲一個經驗法則,讓它只能由所有者寫入,並且只能由Web服務器用戶讀取,這將是最明智的做法,但這是微不足道的,因爲任何使用相同Web服務器的人都可以讀取文件,除非服務器具有權限分離。

如果您的MySQL服務器支持SSL來加密您的腳本和MySQL服務器之間的通信,那麼如果您使用的是舊MySQL功能,請參閱mysqli::ssl_set()查看MySQLi或* client_flags *參數mysql_connect()

+0

是的,這就是我問的。另外我有我自己的服務器,所以其他人閱讀文件不會是一個問題。這個文件的chmod號碼是什麼? – FrozenWasteland 2011-05-10 00:45:15