Re[7]: Фаулер. Архитектура
От: Cyberax Марс  
Дата: 30.07.19 00:31
Оценка:
Здравствуйте, Stalker., Вы писали:

C>>Оптимально — сразу отображаем в целевой объект, который мы потом можем записать в базу (через ORM).

S>в серьезных системах так делать ни в коем случае нельзя хотя-бы по причине mass assignment attacks — когда хакер просто дописывает в json скрытое в UI поле, а система автоматически маппит его в базу, подобный подход просто не пройдет аудит безопасности.
Ну так и пусть дописывает. Надо просто не допускать в объекте "ненужных" полей, или разделять объекты на публичную/непубличную часть. Можно так же использовать рефлексию и допускать изменение только специально аннотированных полей.

Более того, я бы вообще отделял редактируемые пользователем объекты от чувствительных для безопасности объектов. Если у объекта половина полей редактируема, а половина вызывает взрывы в безопасности — это очень плохо.

S>Ну про очевидные вещи про завязанность REST интерфейса к структуре базы я уж молчу...

А оно обычно и так привязано.

Ну и если таки требуется серьёзная развязка, то придётся использовать DTO. Никуда не деться, увы. Но я оставляю это всегда на крайний случай.
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.