В настоящее время я работаю над проектом, который будет собирать много конфиденциальных данных о клиентах. DOB, SSN, кредитная история и другие личные данные.
Все эти данные используются веб-сайтом, который создает документы в формате PDF, содержащие персональные данные. Очевидно, что если имена пользователей и пароли клиентов будут скомпрометированы, их личная информация окажется под угрозой, но что я могу сделать, чтобы защитить базу данных от взлома?
Должен ли я шифровать PDF-документы и другую информацию в базе данных? Приведет ли это к серьезным проблемам с производительностью по мере увеличения числа пользователей?
Достаточно ли держать сервер базы данных в частной сети, к которой имеет доступ общедоступный веб-сервер?
Я использую MySQL
Вот ссылка на так называемые «Рекомендации PCI».
http://www.appsecinc.com/solutions/pci/index.shtml
PCI - это стандарт, которого должны придерживаться компании, принимающие кредитные карты, и, как правило, это хорошая практика.
Вот некоторые из ключевых моментов:
Если вы читаете какую-либо документацию на этом сайте, она должна предоставить вам дополнительную информацию.
У вас обязательно должна быть база данных за брандмауэром, доступная только для веб-сервера. Зачем выставлять больше, чем нужно?
Что касается шифрования ... это было бы хорошо, если ваши требования к доступу не делают его бесполезным. В идеале вы можете хранить данные SQL в зашифрованном виде с помощью известного вам ключа, и любые созданные документы будут зашифрованы с использованием ключа клиента.