Подтвердить что ты не робот

Где поместить информацию, чувствительную к базе данных

Возможный дубликат:
Как защитить пароли базы данных на PHP?

Недавно мне был предоставлен проект веб-сайта, который должен был быть выполнен на PHP, но у меня нет большого опыта работы с PHP. Во всяком случае, он работает, но есть большая комната для улучшения. Единственное, что я плохо себя чувствую, это то, как я имею дело с базой данных: я помещаю информацию о соединении с базой данных в отдельный файл db.php и включаю ее там, где это необходимо. Но я помню, как часто видели исходные файлы PHP, возвращаемые сервером.

Итак, теперь мой вопрос: что лучше или наилучшим образом/место для размещения данных, чувствительных к базе данных?

Кстати, как НЕ разрешить PHP показывать сообщения об ошибках на веб-страницах, когда все пошло не так? Пользовательская страница ошибки или настройки где-то в php.ini? Спасибо!

Примечание. Я использую PHP в своем старом вкусе, а не объектно-ориентированном. Но я открыт для объектно-ориентированного или MVC-метода, если есть более подходящие подходы к подготовке будущих проектов.

4b9b3361

Ответ 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'); ?>