at0m1x
@at0m1x

Как хранить конфиги на сервере в зашифрованном виде?

Обычно в проектах написанных на PHP, конфиги, например логин/пароль к БД MySQL, хранятся прямо в исходнике проекта.

Как сделать так, что бы они хранились вне исходника, где то на сервере, и в зашифрованном виде.
  • Вопрос задан
  • 835 просмотров
Пригласить эксперта
Ответы на вопрос 4
Melkij
@Melkij
PostgreSQL DBA
А смысл?
Чтобы подключиться к базе, надо знать действительные логин/пароль. Значит код расшифровки будет здесь же доступен.
Если к базе подключаться не надо - то и конфига здесь не будет.
Ответ написан
Комментировать
@pudovMaxim
web-developer
Если их нужно использовать, значит php должен иметь права на чтения. Если есть права на чтения, то как не шифруй, как не убирай, то они будут доступны для php. Другое дело, что их можно положить выше корня публичной части сайта, чтобы сервер случайно их не светил, хотя это по умолчанию для большинства современных фреймворков и cms.
Ответ написан
Комментировать
2ord
@2ord
Вне зависимости от того где хранятся пароли, они однозначно не должны быть частью исходного кода и, следовательно, должны отсутствовать в репозитории кода. Пароли должен задавать сисадмин, своевременно обновлять их и заботиться о том, чтобы к ним не было несанкционированного доступа.
Пароли зашифровать - не сложный вопрос (надеюсь, не самописным алгоритмом и не каким-нибудь Base64). Зато вопрос в том, где хранится ключ для расшифровки и кто имеет к нему доступ.
Ответ написан
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Зачем так делать?
Движок сайта - не человек. У него нет мозгов, нет глаз, нет рук. У него только умение тупо выполнять инструкции, которые ему запрограммировали. Он должен подключиться к БД. Для этого он должен передать в движок БД логин и пароль, причем сделать он это должен в открытом тексте (теоретически есть возможность сначала поднять шифрованное соединение с БД, а потом уже по нему передавать логин-пароль, но так никто не делает). Для передачи пароля в открытом тексте он должен быть расшифрован, если хранился в шифрованном виде, причем никаких других ключей, меток, паролей и пр. - движок заполучить не имеет возможности, то есть шифрование должно быть обратимым. То есть имея на руках .php файл с функцией криптовки-декриптовки и зашифрованный пароль, запросто восстановить пароль оригинальный. Стоит ли тогда овчинка выделки?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы