Было ли самым безопасным местом для хранения моих значений, которые будут использоваться в mysql_connect, и какой самый безопасный способ назвать эту переменную лучше использовать с помощью require, include или что-то еще?
благодаря 🙂
Лучшее место для его хранения IMO находится в файле PHP (независимо от того, используете ли вы его или используете для его извлечения) вне корневого веб-узла, т. Е. Напрямую не доступен в браузере.
<?php $db_server = "xyz"; $db_user = "def"; $db_password = "abc"; ?>
Если нет доступа вне веб-корня
@Yacoby написал это в своем ответе. Он удалил его с тех пор, но это определенно заслуживает упоминания.
Есть глупые хостинг-провайдеры, которые не разрешают доступ за пределами корня веб-сайта. В этом случае вы помещаете файл конфигурации в каталог на своем веб-сайте и защищаете его с помощью файла .htaccess
содержащего Deny from All
. Это работает на большинстве пакетов хостинга. Убедитесь, что вы его протестировали, но при попытке доступа к этому файлу вы должны получить 403 Forbidden
.
Это то, что я обычно делаю:
$ databases = array ( "read" => array ("host" => "127.0.0.1", "user" => "read", "pword" => "secret", "dbase" => "projectName"));
класс Database расширяет PDO { функция __construct ($ database) { глобальные базы данных; $ db = $ databases [$ database]; Родитель :: __ конструкт ( "MySQL: имя_бд =" $ дб [ 'DBase'] "хост =" $ дб [ 'хозяин']... $ db ['user'], $ db ['pword']); } }
Теперь вы можете передать ключ массива в один из учетных данных базы данных в качестве аргумента конструктору класса базы данных, а затем он будет входить с этими деталями. Это означает, что у вас может быть несколько пользователей для доступа к базе данных (один для чтения и один для записи).