Я читаю учебное руководство в
http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ
Это указывает
Помните - Вы никогда не должны полагаться на sessionID, отправленный на Ваш сервер в заголовке cookie; посмотрите только на sessionID, который Ваше приложение GWT отправляет явно в полезной нагрузке сообщений к Вашему серверу.
Это - использование для предотвращения http://en.wikipedia.org/wiki/Cross-site_request_forgery#Example_and_characteristics
С этой мифологией действительно ли достаточно достаточно предотвратить к вышеупомянутому нападению?
Да, этого достаточно для предотвращения подделки межсайтовых запросов.
Идентификатору сеанса в cookie нельзя доверять. Допустим, пользователь вошел в систему на mysite.com, а идентификатор сеанса находится в файле cookie. Теперь пользователь нажимает ссылку на evilsite.com. У evilsite.com есть такой код
<img src="http://mysite.com/transfermoney.jsp?amount=1000.." />
Браузер сделает запрос к mysite.com, и он также отправит cookie с идентификатором сеанса. Здесь нужно понимать, что evilsite.com не может прочитать cookie, но он все равно может выполнять свою работу.
Политика одинакового происхождения в браузере не позволяет evilsite.com считывать идентификатор сеанса, независимо от того, содержится ли он в файле cookie или встроен в страницу html. Но поскольку браузер автоматически отправляет cookie на ваш сервер , даже если ресурс был запрошен из html-кода в другом домене , у вас есть XSRF.
Чтобы предотвратить это, рекомендуется указать идентификатор сеанса в качестве параметра запроса. Если он добавлен в качестве параметра запроса, evilsite.com не может получить доступ к идентификатору и, следовательно, не может поместить его в атрибут img src.
Однако помните, что если на вашем сайте есть XSS-уязвимости, ничто не может помешать вам от XSRF. Другими словами, если у вас есть XSS-уязвимости, злоумышленник даже не позаботится о выполнении XSRF.