Я планирую большой проект PHP для коммерческого веб-сайта, связанного с услугами, связанными с Bitcoin. Это будет привлекательной целью для хакеров.
Помимо того, что сайт максимально безопасен, я также оборачиваюсь вокруг таких вещей, как: логины и пароли базы данных, общедоступные и закрытые ключи, секретные ключи аутентификации для удаленных API-интерфейсов или внешних служб, ключи SSH, кошельки с биткойнами и т.д.
Очевидно, что я нуждаюсь в них где-то в моих PHP-источниках. Обычно я помещаю все секретные или конфиденциальные данные в отдельный файл include (например, "passwords.php"), который я размещаю вне корня документа HTTP. Таким образом, посетители не могут напрямую обращаться к самому файлу.
Но там больше:
Что относительно хостинг-провайдера? Конечно, я должен доверять им, если сначала у меня будет свой сервер с ними, но могу ли я что-нибудь сделать, чтобы снизить риск того, что какой-то сотрудник злоупотребляет рискованными вещами, такими как ключи API биткойнского обмена?
Репозитории Git: особенно если мы хотим удаленно размещать объекты git удаленно, должен ли я полностью хранить файл passwords.php из репозитория git, чтобы убедиться, что данные не протекают нигде? (но как же я могу перейти к управлению версиями или распространить его на членов команды?)
Строгие коммуникационные политики: я буду работать с несколькими людьми, и я хочу, чтобы кто-либо никогда не отправлял по электронной почте или просто не тратил на них эти секретные данные. Некоторым людям нужен только доступ к тестовой среде, а не к фактическому серверу. Как ограничить доступ к passwords.php (содержащий фактические серверные логины и т.д.) Только тем, кто действительно нуждается?
У меня пока нет четкого представления о том, как решить эти проблемы. У кого-нибудь есть какие-то предложения или указание, как правильно настроить это?
Это звучит как серьезное начинание. Много риска. Но реквизит для вашей цели.
Что касается безопасности, я не эксперт, но лучше всего, вероятно, будет тяжелое шифрование. Помимо этого, я думаю, что всегда будут иметь место уязвимости, когда приходится сталкиваться с такими внешними источниками, как интернет-провайдеры и хостинг-провайдеры. Вы просто не можете так думать, и если вы не можете это сделать, вам нужно найти новый хост.
Я бы предложил разместить ваше приложение с помощью Amazon Web Services. Они обеспечивают удобство управления, надежные и надежные веб-службы. После того, как вы начнете сегментировать свое приложение (серверы db, кластеры кешей, медиа-серверы и т.д.), Он станет меньше: "Надеюсь, что меня не взломают" и больше "Я надеюсь, что смогу справиться со всем этим дерьмом".,
Я предлагаю вам искать опытного разработчика полного стека или даже небольшой команды с акцентом на безопасность и шифрование. Со всем материалом MtGox, который спустился, вы стучите по очень серьезной дороге, поэтому будьте очень осторожны и старательны. Удачи.