Каков наилучший способ передать идентификатор объекта через ajax на сервер/контроллер (например, мы находимся на сайте «book/edit/mybookname» и что обновить эту книгу? entity "mybookname" через ajax)?Pass ID объекта через Ajax для контроллера
Я думал о некоторых подходах и хотел бы знать, что наиболее распространенным и наиболее безопасным способом было бы:
1) Передайте идентификатор книги к контроллеру
-> Проблема: ID переменной/поле может быть изменено с помощью консоли браузера
2) Передать текущий URL (window.location.href) к контроллеру и извлечь имя из URL в контроллере
-> окна .location.href не может быть изменен ugh the console ..?
Я знаю, что мне нужно проверить на стороне сервера, если у Пользователя должен быть доступ к редактированию объекта. Но если у него есть более одной книги, он может изменить параметр id на другую книгу, которой он владеет, а затем он изменит другую презентацию книги в фоновом режиме, а не ту, которую он просматривает в настоящее время.
Вы можете установить переменную сеанса, когда пользователь обращается к книге 'book/edit/mybookname'. Но я действительно не вижу смысла, если пользователь хочет испортить свою собственную коллекцию, это их проблема ИМО. – jeroen
Привет jeroen, переменная сессии не помогла, вы можете открыть несколько вкладок с разными книгами. Итак, общий способ - сказать: проверить права доступа, но когда регистрируемый пользователь пытается манипулировать формами/параметрами, в конце концов он может испортить свои книги. – user3746259
Единственный способ убедиться, что его нельзя манипулировать, - использовать значение, которое не исходит от пользователя, а хранится на сервере. Но, как вы заметили, это тоже может потерпеть неудачу. Так что да, их коллекция, их проблема, пока они имеют доступ только к своим вещам. – jeroen