Принадлежит ли шифрование данных шаблону хранилища?

StackOverflow https://stackoverflow.com/questions/616421

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Я применяю шаблон репозитория в приложении.

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

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

Класс обслуживания отвечает за проверку и бизнес-логику, но алгоритм шифрования и способ хранения данных в состоянии покоя зависит от реализации репозитория.

Это разумная практика или я что-то упустил?

Это было полезно?

Решение

Вам определенно не нужно шифрование в классе обслуживания.

В некотором смысле, вы на самом деле отвечаете на свой вопрос, когда говорите

  

но алгоритм шифрования и способ хранения данных в состоянии покоя зависит от реализации репозитория.

Поскольку шифрование является частью способа хранения данных, оно принадлежит внутри хранилища.

Другие советы

Я бы поставил его на сервисный уровень. И вот почему:

С точки зрения бизнес-правил / требований к домену, является ли шифрование данных требованием? Должно ли это быть подтверждено тестами? Если это так, вы должны поместить его в то же место, где размещена вся другая проверяемая бизнес-логика. Другими словами, в сервисе.

Насколько мне известно, бизнес-логика (что шифровать, а что не шифровать) не принадлежит хранилищу. Сохраняемые объекты должны быть готовы к сохранению (или как можно ближе), когда они передаются в хранилище. В противном случае хранилище отвечает за постоянство и реализации бизнес-правил, и тогда вы больше не будете использовать шаблон хранилища ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top