2010-06-26 231 views
0

mysql_real_escape_string用於SQL語句。僅僅是數據庫安全就足夠了嗎?例如,使用get_magic_quotes_gpc(),我們使用stripslashes。是否有任何問題需要我們通過mysql_real_escape_string使用其他函數? 在此先感謝mysql_real_escape_string:僅僅是數據庫安全就足夠了嗎?

+0

你懶惰的按鈕拒絕點擊鏈接:)希望同樣的文字copypasted在盤子上。要儘自己的煩惱,雖然 – 2010-06-26 09:28:31

+0

我已編輯Col :) – TheNone 2010-06-26 09:44:25

回答

3

如果你想擁有一個更安全的數據庫,只需轉義字符串是不夠的。這對於SQL注入攻擊肯定會有所幫助,但還有許多其他方法可以危害數據庫。

一些指針:在

  1. 實踐「最小特權」被授予訪問到你的數據庫應該有最小權限來完成他們的任務,並沒有其他的用戶和帳戶。
  2. 確保您的密碼難以猜測(由低位和高位字母,數字,符號等組成)並定期更改。
  3. 除非絕對必要(假設您正在運行商業網站),否則不要保存信用卡號碼。
  4. 哈希和鹽可能您的密碼,將它們存儲在你的數據庫之前,如果你有用戶帳戶
  5. 檢查,重複檢查端口號(3306爲MySQL)和權限上的文件和目錄,尤其是當用戶上傳文件

這些通常是很好的做法,您應該意識到SQL注入攻擊範圍之外的數據庫問題。

+0

@SHC;這是否意味着我們在php中只有50%-60%的安全性? – TheNone 2010-06-26 08:57:07

+0

關於SQL注入攻擊,逃脫本身將無濟於事 – 2010-06-26 09:26:40

+0

得到任何「最小特權」實踐的真實生活的例子? – 2010-06-26 09:29:26

2

不是真的。 SQL語句不同。對於其中的一些而言,這有助於其他人,而不是。

我最近回答了這個問題:In PHP when submitting strings to the database should I take care of illegal characters using htmlspecialchars() or use a regular expression?

希望它可以給你完整的圖片,但我們歡迎您要問,如果事情還不清楚。

請注意,get_magic_quotes_gpc()和stripslashes不是數據庫問題。這只是輸入數據驗證的東西,它有沒有關係SQL

0

1)關閉magic_quotes_gpc的
2)是否足夠與mysql_real_escape_string()

相關問題