Рейтинг:0

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

флаг cn

Допустим, у меня есть сайт, где люди ведут личный дневник (дневник Тип содержимого). Я настроил разрешения таким образом, чтобы каждый пользователь мог только читать, писать и просматривать свой собственный дневник.

Пользователи могут создавать и размещать на сайте несколько различных типов контента; только дневник тип контента должен быть закрытым.

Я хотел бы зашифровать дневники на пользователя, в идеале привязав шифрование к имени пользователя и паролю.

Я изучил модули шифрования, доступные для Drupal, и вот единственные из них с более чем 300 установками:

  • Шифровать: использует Настоящий АЭС модуль и ключевой модуль
  • Шифрование: проще настроить, чем Encrypt, один модуль
  • Дби, который шифрует только адреса электронной почты в базе данных — изящно

Кроме того, существует Шифрование публичного ключа модуль, который представляет собой заброшенный модуль Drupal 8, который позволяет шифровать данные для каждой роли пользователя.

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

Как я могу зашифровать контент для каждого пользователя для определенного типа контента?

Если это действительно сложно сделать, я также хотел бы услышать ответ, который просто объясняет, почему эта проблема сложнее, чем я думаю.

Stef Van Looveren avatar
флаг cn
На самом деле есть разговор на эту тему в дни разработчиков Drupal: https://drupalcamp.be/en/drupal-dev-days-2022/session/protected-content-assymmetric-client-side-encryption (должна быть доступна прямая трансляция в течение нескольких дней)
Рейтинг:2
флаг ph

Проблема здесь не в самом шифровании, достаточно просто симметрично зашифровать некоторые данные перед сохранением их в базе данных, а в расшифровке.

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

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

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.