Просто чтобы добавить к уже предоставленным ответам - у меня была очень похожая проблема в том, что я пытался добавить некоторую проверку CSRF в наше существующее веб-приложение. Мы решили включить в каждую форму специальный токен с использованием некоторого JS и добавить фильтр сервлетов, чтобы проверить, существует ли токен (следовательно, универсальное изолированное решение).
Сервлет будет проверять наличие токена, но он будет поврежден для каждой формы, которая предоставляет возможность загрузки файла. Поэтому я часто заходил на эту страницу, пока занимался поиском.
Обходной путь, который мы использовали (пытаясь избежать каких-либо действий с загруженными файлами), заключался в том, чтобы заставить JavaScript добавить маркер в качестве параметра GET, т. Е. Мы изменили URL-адрес действия формы, добавив токен, и поэтому могли использовать Метод HttpServletRequest.getParameter () для токена (и только токена).
Я проверил это в IE, FF и Chrome, и все, кажется, счастливы.
Надеюсь, это поможет любому, кто также окажется в подобной ситуации.