Как зашифровать данные пользователя, сохраняя их видимыми в менеджере сайта?

Я создаю веб-приложение и хочу обеспечить правильное шифрование пользовательских данных.

Эти данные не являются высокочувствительными (например, медицинские записи или номера CC), но, тем не менее, я думаю, что они должны храниться надежно - просто имя, компания, должность, номер телефона, адрес электронной почты. И пароль конечно - но это будет защищено с помощью хеша / соли...

Я хочу надежно хранить пользовательские данные, чтобы защитить сайт от взлома / взлома сервера. Но мне также нужно, чтобы имена клиентов, организации, номера телефонов и адреса электронной почты были видны администраторам сайта - то есть были видны в конце.

Пароли, конечно, не будут видны администраторам сайта...

Я был бы признателен за несколько советов о том, как мне поступить в этом направлении - я хочу сделать достаточно, чтобы быть "разумно" защищенным, не выходя за борт - как я говорю, что данные не являются чрезвычайно конфиденциальными, и сам сайт - это не тот, кого бы смущал член...

большое спасибо.

1 ответ

Хеширование - это процесс вычисления необратимой (или почти необратимой) односторонней функции для данных. Так что вы, вероятно, имеете в виду шифрование.

Что касается шифрования на уровне приложения в этом контексте, вы можете сделать это, но это защитит только от кого-то, кто сбрасывает необработанную базу данных и читает ее. Для обеспечения функциональности административного представления вы должны зашифровать все одним ключом. И расшифруйте его на лету в вашем веб-приложении. Стоит отметить, что если ваше приложение уязвимо для внедрения SQL-кода, это может означать, что, несмотря на шифрование, кто-то сможет извлечь данные. Поскольку ваше приложение может расшифровать его, считая, что это часть законного потока данных.

Шифрование данных может привести к еще одной проблеме: как сузить выборку в этих полях? Вы должны зашифровать параметры перед передачей. Но вам придется использовать тот же IV, чтобы соответствовать значениям поля. Но для того, чтобы использовать действительный IV, вам нужно знать точную запись в дБ, из которой извлекается InitializationVector. Как я уже сказал, это может быть сложно.

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

Другие вопросы по тегам