2013-03-06 2 views
0

Я использую много скриптов PHP, и у меня есть информация о базе данных внутри каждого файла, включая имя базы данных и пароль.Лучший способ защитить пароль SQL

Я хочу обеспечить эту информацию, чтобы никто не мог получить доступ.

Информация может храниться в отдельном файле, который затем будет читаться скриптом PHP, когда это необходимо.

Мой вопрос: где его хранить, как и как предотвратить несанкционированный доступ к этому файлу? Я также открыт для других предложений, все, что обеспечит безопасность пароля наилучшим образом.

+1

Переместите этот файл из общедоступных файлов веб-сайта, где-то, недоступном для браузера. –

+0

Вы можете установить права на чтение/запись/доступ к файлу, содержащему учетные данные базы данных. – guanabara

ответ

2

Может быть даже лучшее решение, но я храню мой как часть запуска среды apache (только для чтения на сервере). Вы можете сделать то же самое или какой-нибудь аналог, если используете другую серверную технологию.

#site.example.com 
Include includes/credentials/site.conf 

#includes/credentials/site.conf 
<Directory /srv/www/html> 
    SetEnv DB_HOST "server" 
    SetEnv DB_USER "user" 
    SetEnv DB_PASS "passwd" 
</Directory> 

Это также позволяет вам контролировать «учетные данные» для каждого каталога, если это вам поможет.

В PHP, вы можете связаться с чем-то вроде:

$pdo = new PDO("mysql:host=$_SERVER[DB_HOST]", $_SERVER['DB_USER'], 
    $_SERVER['DB_PASS']); 

EDIT: Это также дает вам возможность изменить учетные данные, когда вы хотите подключиться к чему-то другому, как ваш собственный экземпляр MySQL. Вы можете использовать .htaccess для переопределения или изменения среды, если у вас есть контроль над этим (возможно, предпочтительным).

+0

Хорошее использование существующих мер безопасности в Apache. –

0

Наличие информации о БД в ваших деловых файлах действительно опасно с точки зрения обслуживания. Подумайте о том, какую работу вам придется выполнять, если вы переместите свой веб-сайт на новый сервер.

Я хотел бы предложить Используйте Data Access Object Pattern

Теперь в любой папке у вас есть этот класс DAO, поставить простой index.html, который отображает пустую страницу при доступе. Joomla использует этот метод на основе предоставленного rationale.

+2

Или ... просто переместите его из каталога, доступного в Интернете. –

Смежные вопросы