簡體   English   中英

Php與數據庫的連接:它安全嗎?

[英]Php connection to database: is it secure?

我使用以下php代碼連接到mysql數據庫。

$hostname = "hostname.com";
$database = "dbtest";
$username = "admin";
$password = "pass123";
$connect = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database);

此代碼放在名為connect.php的連接文件中,該文件包含在需要訪問數據庫的所有php腳本中。

如果黑客獲得了connect.php(http://www.domainname.com/connect.php)的網址,是否有可能破解我的數據庫。 如何確保php連接代碼無法幫助黑客? 或者哪種連接數據庫最安全?

您永遠不應該在您的網站的文檔根目錄中包含帶有代碼的PHP文件。 文檔根目錄中唯一的東西應該是一個bootstrap文件,並通過它來路由所有請求。 如果您將該文件放在站點的文檔根目錄中,並且由於某種原因,Web服務器不會解析該文件,它將按原樣顯示。

請不要使用mysql_*函數來獲取新代碼。 它們不再維護,社區已開始棄用過程 看到紅色的盒子 相反,您應該了解准備好的語句並使用PDOMySQLi 如果你無法決定, 這篇文章將有助於選擇。 如果你想學習, 這是一個很好的PDO教程

並始終使用ecrypted連接(SSL)。

有關路由示例調度模式,請參閱此處 基本上應該發生的是:所有請求都由文檔根目錄下的index.php文件處理。 index.php引導文檔根目錄之外的所有內容(即調用(包括))。 此文件將檢查請求的URL並找出哪個文件屬於當前URL並執行它。

通常情況下,如果黑客只有文件的URL,並且您的網絡服務器配置正確,以至於未顯示原始源代碼,那么這對於您的配置數據應該是安全的。

如果將此類配置文件放在Web根目錄之外,則可以提高安全性。

  1. 不要使用mysql_*函數。
  2. 將文件放在Web服務器的文檔根目錄下的其他位置。
  3. 將Web服務器配置為僅允許來自IP地址列表的連接。
  4. 請始終考慮使用安全連接(SSL)並將數據庫配置為僅使用SSL。

如果有人訪問此頁面,將不會發生任何事情。

雖然mysql_*本身是不安全的。

它是安全的。 您還可以將文件存儲在DocumentRoot外部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM