Я знаю, что задал этот вопрос, но после примерно одного дня исследований (благодаря указателям из Rook!), Я думаю, у меня есть ответ.
То, что GWT предоставляет из коробки, не защитит вас от CSRF. Вы должны предпринять шаги, описанные в Безопасность для приложений GWT , чтобы оставаться в безопасности.
GWT RPC устанавливает заголовок «content-type» в «text / x-gwt-rpc; charset = utf-8». Хотя я не нашел способа установить это с помощью HTML-форм, это легко сделать во флэш-памяти.
Пользовательские заголовки - X-GWT-Permutation и X-GWT-Module-Base - немного сложнее. Они не могут быть установлены с использованием HTML. Кроме того, они не могут быть установлены с помощью Flash, если ваш сервер специально не разрешит это в файле crossdomain.xml. См. Flash Player 10 Безопасность .
Кроме того, когда SWF-файл желает
отправлять пользовательские заголовки HTTP куда угодно
кроме своего собственного хозяина происхождения,
там должен быть файл политики на
HTTP-сервер, к которому относится запрос
послан. Этот файл политики должен
перечислить хост файла SWF
Происхождение (или больший набор хостов) как
разрешено отправлять пользовательский запрос
заголовки этого хоста.
Теперь RPC GWT выпускается в двух вариантах. Существует старый RPC-формат пользовательской сериализации и новый de-RPC на основе JSON. AFAICT, код клиента всегда устанавливает эти заголовки запроса. RPC старого стиля теперь не применяет эти заголовки на стороне сервера, и поэтому возможна атака CSRF. Новый стиль de-RPC применяет эти заголовки, и, следовательно, может или не может быть возможно атаковать их.
В целом, я бы сказал, что если вы заботитесь о безопасности, убедитесь, что вы посылаете сильные токены CSRF в своем запросе, и не не полагается на GWT, чтобы предотвратить это для вас.