Предполагая, что в моей системе пользователь хочет изменить свой пароль. Он отправляет запрос PUT
, который затем вызывает UserRepository.save()
. Если он взломает запрос, он может установить [user].admin_rights=1
или аналогичный.Как предотвратить риски безопасности, используя сохранение Spring JPA?
Теперь я мог бы добавить @Column(updatable=false)
в соответствующее поле:
@Entity public class User {
@Column(updatable=false) private Boolean admin_rights;
// ....
, но администратор может потребовать, чтобы обновить это поле один день!
Должен ли я написать собственный запрос для этого, указав, какие столбцы нужно обновить? Или есть способ решить эту проблему разрешения в объекте User
?
Проверьте весеннюю безопасность, особенно, возможно, используя перехват '@ PreAuthorize'. – CollinD