Pull to refresh

Comments 2

Encryption based Token

Сервер генерирует токен, состоящий из идентификатора сессии и timestamp (для предотвращения атаки повторного воспроизведения)


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

Если кратко, то суть в том, что можно сделать вредоносную страничку, при входе на которую будут сабмититься скрытые формы на полезный сайт, на котором предположительно авторизован юзер, например менять пароль/логин и отправлять их злоумышленнику. Да, удивительно, но такой запрос будет авторизован. В 2019 году когда все сабмитится через xmlhttprequest это можно сказать неактуально, так как с другого сайта ajax запрос будет неавторизован, а на бэке не-ajax запросы можно запретить для всех или определенных роутов типа if (!req.isXmlHttpRequest()) res.status(403).send()
Даже если старый корпоративный сайт и формы повсюду, то просто на jQuery перехватываются все сабмиты и передаются через ajax. Имхо это проще, чем возня с CSRF токенами.

Sign up to leave a comment.