你把數據庫連接的連接設置(比如host,dbname,user,password)放在哪裏?它是放置在數據庫類或文件中,還是置於配置文件或其他位置?何處放置數據庫連接設置?
回答
它可以通過多種方式完成,但常見的是將其放入設置文件中,並將該文件保留在webroot之外,以便有關數據庫密碼的信息不會意外泄漏到Web中。
理想情況下,你應該把它放在一個配置文件中,它可以像PHP數組一樣簡單。
例如:db_config.php
$db_config = array(
'host' => 'localhost',
'user' => 'username',
'password' => 'qwerty'
);
您應該然後把這個文件文檔根目錄下最大的安全性之外。這樣,如果您的虛擬主機失敗並開始將PHP文件作爲文本文件提供(發生),則無人可以獲取您的數據庫憑據。
嗨,謝謝你的回答。這是否會像全球一樣實施,否則會出現其他問題。 –
@DaryllSantos您將不得不包含該文件,並在需要時包含該文件。 – xbonez
有很多方法做它,但我通過定義常量這樣來做:
Create a config/db.php
<?php
define('DB_INFO','mysql:host=localhost;dbname=test');
define('DB_USER','root');
define('DB_PASS','');
對於PostgreSQL,我真的很喜歡用pg_service.conf
。它允許我將所有連接特定設置(主機名,數據庫名稱,用戶名,密碼等)放入~/.pg_service.conf
或/etc/postgresql-common/pg_service.conf
並給它們通用名稱(服務名稱)。
現在,任何想要連接到數據庫的程序(Perl,PHP等)都可以簡單地指定"service=name"
作爲它們的連接字符串 - 很好,乾淨,安全且易於維護。
據我所知,MySQL有類似的機制~/my.cnf
或/etc/my.cnf
文件 - 你可能想看看。
- 1. Java設置連接數據庫
- 2. 爲模型設置數據庫連接?
- 3. 從JNDI連接池中檢索數據庫連接設置
- 4. 生產者消費者設置:如何處理數據庫連接?
- 5. 如何在Waterline ORM中設置數據庫連接字符串
- 6. 如何設置「RecordSet」,使用SQL連接到數據庫
- 7. 如何在CodeIgniter中設置MongoDB數據庫連接超時?
- 8. 如何設置數據庫的全局連接?
- 9. 我的數據庫如何連接而不設置端口?
- 10. 如何設置與OSGI的MySQL數據庫連接?
- 11. 如何設置OLEDB連接到遠程數據庫?
- 12. 如何在android中設置與遠程數據庫的連接?
- 13. 如何更改數據庫連接區域設置?
- 14. 如何連接在線數據庫,設置NODE_ENV = production && nodemon?
- 15. 如何設置動態數據庫連接的.rpt
- 16. 播放application.conf數據庫設置?
- 17. 如何設置遠程連接到postgresql數據庫的jdbc連接超時值?
- 18. 我應該在哪裏放置數據庫連接字符串,以及如何處理連接池?
- 19. 重置或刷新數據庫連接
- 20. Qt SQL - 配置連接到數據庫
- 21. 數據庫連接字符串位置
- 22. Slick 3配置ProvisionException連接數據庫
- 23. 在.resx文件中放置數據庫連接字符串
- 24. 如何使用配置文件連接到用戶設置的數據庫
- 25. 設置連接
- 26. 在MariaDB連接器中設置極光之後數據庫連接數增加
- 27. VB6。數據環境:如何配置/設置可信連接?
- 28. 如何將水晶報表數據源設置爲未連接的數據庫?
- 29. 數據庫連接設計
- 30. Oracle如何處理數據庫連接?
這取決於你的實施... 你可以把一個設置文件,所以你可以隨時自定義。 或者如果你喜歡面向對象,那麼你也可以使用類.. 但可能使用的設置文件。 – Pratik
我通常把它放在web根目錄以外的文件中,然後將它包含到我需要的任何應用程序中。這使它更安全,避免意外地暴露給Web,並允許多個應用程序使用相同的設置更改該文件將保持所有應用程序數據庫設置保持最新。 –