Как можно использовать CSRF, если тип контента не простой и браузер как политика SOP - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть приложение GWT.HTTP-запрос всегда является POST, и на стороне сервера методы GET выдают исключение (метод не поддерживается).Заголовок запроса POST содержит, помимо прочего:

Content-Type: text/x-gwt-rpc; charset=UTF-8
X-GWT-Module-Base: xxxxx
X-GWT-Permutation: xxxxxx

Может кто-нибудь объяснить мне, как кто-то может использовать CSRF здесь?Разве злоумышленник не подделает вредоносный HTML-код, подобный этому?

var xhr = new XMLHttpRequest();
xhr.open("POST", 'URL', true);
xhr.setRequestHeader('Content-type', 'text/x-gwt-rpc; charset=utf-8');
xhr.setRequestHeader('X-GWT-Permutation', 'XXXXXX');
xhr.setRequestHeader('X-GWT-Module-Base','XXXXXX');
xhr.send(data);

В этом случае, где бы ни размещалась эта страница, так как тип содержимого не является простым или простым, он вызовет перекрестный вызов источника ибраузер (любой браузер сейчас) выдаст запрос OPTION перед полетом, и в этом случае произойдет сбой, поскольку мое приложение не отвечает на OPTION и не возвращает Access-Control-Allow-Origin для случайных веб-сайтов.

Даже если мы рассмотрим вышеупомянутую защиту, как злоумышленник может найти обходной вариант браузера перед полетом?Можно ли это как-то обойти?

...