2011-02-05 199 views
0

我在網上找到的所有東西都告訴我要提供數據庫用戶和密碼來連接數據庫。從PHP連接到MySQL數據庫

像往常一樣偏執,我不喜歡這個,因爲它意味着任何有php源代碼的人現在都可以登錄到數據庫並與數據一起使用。這是訪問數據庫的唯一方式嗎?

方面:http://www.cyberciti.biz/tips/facebook-source-code.html

+0

很高興知道安全需要,千萬不要失去它。 :o) – 2011-02-05 03:56:27

回答

1

由於PHP將被解釋,只有HTML解析將輸出,你不用擔心,因爲將沒有辦法讓PHP源的保持(猜你已經設置適當的措施,以便PHP源碼不能下載)。

阻止從外部到MySQL服務器的所有流量。只允許localhost使用它。

+0

並保護您的文件可通過FTP訪問 – mauris 2011-02-05 02:40:09

3

是的,這是唯一的方法。另外,作爲一個偏執的人,你應該知道登錄和密碼的知識還不夠,但是你必須從正確的主機(允許用這個憑證登錄)登錄。

另外,作爲一個偏執的人,爲什麼你害怕竊取你的資源,並且不怕在你的代碼中存在漏洞,這將使黑客竊取數據,即使沒有登錄和密碼?在這種情況下,偏執狂最好不要編程。

0

你需要以某種方式提供連接信息,您的指定,但您可以減輕通過設置你的MySQL用戶的風險有儘可能有限的權限盡可能。因此,只在需要的地方授予讀取/插入訪問權限,並且您可以將用戶主機設置爲僅允許來自127.0.0.1的連接。

也有商業迷惑產品,如http://www.zend.com/en/products/guard/,這可能是有趣的。我不確定它們是否包含字符串加密或不。

1

這不是唯一的方式,但它是世界上大部分地方(如99.999%)的做法,據我所知,100%的網絡程序員。

考慮一下:如果密碼被硬編碼到源的某處,爲什麼要麻煩?爲什麼不讓帳戶無密碼,只限制其訪問Web服務器?有人可能會說:「哦,不要!不要那樣做!」但是我再次問,有什麼不同?無論如何,什麼安全漏洞被打開?

真正的安全問題實際上是保護自己免受SQL注入。那開闊的帳戶,使你容易受到如:

1)你必須在代碼中的故障,可以被用來做一些用戶不應該做的,或者

2)他們可以欺騙你的數據庫服務器通過SQL注入執行代碼。

因此,SQL注入是您防範的大bug。

還有二級保護。例如,大多數人對他們的「用戶」表格含糊不清,這些用戶表格包含用戶和(不幸的是大多數時間)純文本密碼,如果您要通過電子郵件向用戶發送密碼,則需要這些密碼。

通過鎖定它,您可以在此表上放置第二級保護(以防他們通過SQL注入保護或發現漏洞使您的程序執行某些您認爲不會執行的操作)根本看不到它或寫信給它。然後你寫兩個存儲過程,「addUser(username,password)」和「checkPassword(username,password)」。這是「深度安全性」的一個例子,您可以在更敏感的數據周圍獲得多級安全性。