[英]Keeping database credentials secure in a PHP application
我正在開發我的第一個PHP應用程序。 現在,我將數據庫連接詳細信息保持在根文件夾之外的配置文件中的常量中,因為我讀到這是防止人們獲取您的數據庫憑據的最安全的方法。
如果我將該文件包含到我的PHP應用程序中,這些常量現在在我的代碼中到處都可見嗎,那還不是一件壞事嗎? 解決這個問題的我個人想法只是創建一個數據庫類,還將其存儲在根目錄之外,然后將我的憑據放入私有參數中。 所以會是這樣的:
class Db {
private $host = 'host';
private $dbname = 'dbname';
private $username = 'username';
private $password = 'password';
private $connection;
public function __construct() {
$this->open_connection();
}
private function open_connection() {
try {
$this->connection = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->dbname, $this->username, $this->password);
} catch (PDOException $ex) {
// handle exception
}
}
}
然后,我將包括這個文件,有什么想法嗎?
如果有人可以訪問您的PHP源文件,那么您遇到的問題比找到數據庫登錄名還要大。 只是說。
我將數據庫憑據保存在有意義的位置:在連接到數據庫的函數調用中。
那會增加一些安全性,但是我不確定這是否完全值得。 您將配置文件保留在根目錄之外的原因是為了防止客戶端調用Web上的憑據。 只要用戶無法執行自己的PHP,而您不應該執行,則第一種方法應該是安全的。
如果他們擁有終端訪問權限,則應更加專注於使其更加困難。 您應該鎖定文件,以便只有root才能看到它們。 還禁用外部數據庫訪問,在防火牆中阻止端口3306,並禁用Mysql網絡。 用這個。 我希望這個幫助能祝你好運。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.