Способы избежать перекрестного представления форм на аутентифицированных страницах - PullRequest
0 голосов
/ 08 сентября 2018

Я разрабатываю приложение и сталкиваюсь со следующей проблемой:

Пользователь приложения может иметь несколько проектов. Например, project01 и project01. URL для проекта: https://myApp.com/{projectid}.

Когда пользователь входит в систему и получает доступ к странице проекта, например https://myApp.com/project01, в форме появляется кнопка «Обновить проект» с методом = post action = https://myApp.com/project01.

Проблема: если я использую инспектор Браузера и изменил действие на https://myApp.com/project02 и нажму кнопку «Обновить проект», информация о project01 обновляет project02, поскольку оба проекта принадлежат одному и тому же пользователю.

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

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

...