2009-07-04 85 views
6

如果有任何方式使用哈希密碼連接到MySQL數據庫,我想知道(並且沒有明確的結果使用Google)。說我有以下幾點:用哈希密碼連接到MySQL?

Password (plain): 'foobar' 
Password (sha1): '8843d7f92416211de9ebb963ff4ce28125932878' 

現在我想連接到MySQL這樣的(使用mysql_ *函數爲例,我使用PDO雖然):

$db_link = mysql_connect ('localhost', 'user', '8843d7f92416211de9ebb963ff4ce28125932878'); 

我這個可能?有沒有人做過?

+0

如果有人有權訪問該代碼,那麼無論您的密碼是什麼,他們都可以登錄。只需使用隨機生成的長密碼,並且不要將其顯示給用戶:-)。 – 2009-07-04 21:49:42

回答

2

簡短的回答是否定的。

但是,只是想知道......你真正關心的是什麼?有人盜用你的服務器並發現你的密碼?

10

然後「散列」將的密碼。有什麼好處?

+0

所以有人即使獲得純文本連接數據也不知道用戶的密碼。如果你在每件事物上使用相同的密碼,這隻會影響你。 – colithium 2009-07-04 20:01:46

+0

但是既然你作爲謹慎的開發人員/管理員已經擔心這個問題,那麼你也不會在其他地方使用這個密碼;-)而且你已經把它放在了某個無法通過你的網絡服務器訪問的地方。 – VolkerK 2009-07-04 21:06:59

1

該用例會讓多個開發人員編輯包含您可能不希望他們知道的sql連接密碼的.php文件。

我認爲一個解決方案就是將connect語句移出到一個文件中,確保沒有$ password變量,儘管可能會有人調用它並稍後將其打印在.php文件中

mysql.php 
<?php 
    mysql_connect('db.cs.dal.ca','user','password'); 
    @mysql_select_db($database) or die("Database Error ".mysql_error()); 
?> 

,並只給你的自我RW -------權限mysql.php文件,然後在所有的組訪問.php文件,您可以只包含這個文件喚起的連接。

index.php 
<?php include("mysql.php") ?> 

<!-- some web content --> 

<?php mysql_close(); ?> 

,並給你的開發小組RW-RW ----在所有其他.php文件的權限,只要mysql.php文件的擁有者可以讀取它應該在PHP的服務器上執行.. ... 我認爲。

我仍然偏執在明文文件中有我的密碼,因爲我可能會不小心將它張貼在論壇上如果我排除故障,或讓它在文件我的屏幕上打開。還有就是爲什麼每個密碼字段中輸入* **而不是顯示你的純文本字符的原因:P

0

答案很簡單:「你不能。」

我知道你在做什麼:你可能在一些共享的託管計劃,並且不能把你的配置文件放在html文件夾的上面。

Stefan認爲黑客只會尋找配置文件,並希望讓他必須爲信息工作。一旦黑客意識到他需要更多信息,他必須再次破解該網站。

這與用戶名&密碼錶無關。這是針對MySQL配置文件的。