Я планирую большой проект PHP для коммерческого веб-сайта, посвященного службам, связанным с биткойнами. Это будет привлекательной целью для хакеров.Как бороться с паролями, ключами API и т. Д. В стеке разработки? (git, webservers и т. д.)
Кроме того, чтобы сделать сайт максимально безопасным, я также оборачиваюсь вокруг таких вещей, как: логины и пароли базы данных, общедоступные + закрытые ключи, секретные ключи аутентификации для удаленных API-интерфейсов или внешних служб, ключи SSH, кошельки с биткойнами и т. д.
Очевидно, что мне нужны они где-то в моих PHP-источниках. Я обычно помещаю все секретные или конфиденциальные данные в отдельный файл include (например, «passwords.php»), который я размещаю вне корня документа HTTP. Таким образом, посетители не могут напрямую обращаться к самому файлу.
Но есть больше:
Как насчет хостинг-провайдера? Конечно, я должен доверять им, если сначала у меня будет свой сервер с ними, но могу ли я что-нибудь сделать, чтобы снизить риск того, что какой-то сотрудник злоупотребляет рискованными вещами, такими как ключи API биткойнского обмена?
Репозитории Git: особенно если мы хотим удаленно размещать объекты git удаленно, должен ли я полностью хранить файл passwords.php из репозитория git, чтобы убедиться, что данные нигде не протекают? (но тогда как мне перейти на контроль версий или передать его членам команды?)
Строгие политики коммуникации: Я буду работать с несколькими людьми, и я хочу, чтобы кто-либо никогда не отправлял по электронной почте или просто трафик по FTP чувствительные детали. Некоторым людям нужен только доступ к тестовой среде, а не к фактическому серверу. Как ограничить доступ к passwords.php (содержащий фактические серверные логины и т. Д.) Только тем, кто действительно нуждается?
У меня пока нет четкого представления о том, как решить эти проблемы. У кого-нибудь есть какие-то предложения или указание, как правильно настроить это?
Спасибо за отзыв. Как вы имеете в виду тяжелое шифрование, шифрование чего? Они должны быть в моих файлах PHP так или иначе, и среда выполнения должна будет прочитать пароли и ключи API в какой-то момент и использовать их. Что касается решения для хостинга - теперь, когда вы упоминаете пример MtGox, мне интересно, как текущие обмены (например, kraken или bitstamp) занимаются их хостингом и, что еще важнее, их безопасностью данных?С сотнями миллионов долларов на линии, я бы сказал, что даже самый маленький риск или возможность использования - это катастрофа, ожидающая, чтобы это произошло ...? – RocketNuts