Где поместить информацию, чувствительную к базе данных
Возможный дубликат:
Как защитить пароли базы данных на PHP?
Недавно мне был предоставлен проект веб-сайта, который должен был быть выполнен на PHP, но у меня нет большого опыта работы с PHP. Во всяком случае, он работает, но есть большая комната для улучшения. Единственное, что я плохо себя чувствую, это то, как я имею дело с базой данных: я помещаю информацию о соединении с базой данных в отдельный файл db.php и включаю ее там, где это необходимо. Но я помню, как часто видели исходные файлы PHP, возвращаемые сервером.
Итак, теперь мой вопрос: что лучше или наилучшим образом/место для размещения данных, чувствительных к базе данных?
Кстати, как НЕ разрешить PHP показывать сообщения об ошибках на веб-страницах, когда все пошло не так? Пользовательская страница ошибки или настройки где-то в php.ini? Спасибо!
Примечание. Я использую PHP в своем старом вкусе, а не объектно-ориентированном. Но я открыт для объектно-ориентированного или MVC-метода, если есть более подходящие подходы к подготовке будущих проектов.
Ответы
Ответ 1
Я не знаю, это то, что вы ищете:
Вы можете поместить свои конфиденциальные данные в свой db.php, но вне корневого каталога в Интернете (public_html или www).
Например, у вас может быть директория с именем config, которая является родственным вашим корневым каталогом в сети и хранит там файл db.php.
Вы можете включить свой файл db.php следующим образом:
require_once('../config/db.php');
Надеюсь, это поможет.
Ответ 2
Хорошо, чтобы поместить его в файл db.php, просто используйте require_once()
сразу после открытия тега <?php
каждого документа.
Если ограничение на основе ограничений не действует, переместите файл db.php за пределы вашего корня web/ftp таким образом, что он определенно не доступен через http/ftp. Убедитесь, что разрешения правильно установлены в этом файле.
Поскольку вы не используете OOP или структуру MVC для своего кода, это лучший маршрут для перехода.
Ответ 3
Я лично создал бы файл с именем db.php и разместил бы это над папкой public_html на вашем сервере
например
<?php
error_reporting(0);
$link = FALSE;
$link = mysql_connect('hostname', 'username', 'password');
if ( ! $link)
{
die("Couldn't connect to mysql server!");
} else {
mysql_select_db('databasename');
}
?>
Это отключает отчет об ошибках одновременно с подключением к вашей базе данных, из вашего index.php вы должны включить такой файл:
<?php require('../db.php'); ?>