Безопасно ли использовать $ .support.cors = true; в jQuery? - PullRequest
52 голосов
/ 21 октября 2011

Я пытался подключить веб-сервис к другому домену с помощью метода jQuery ajax. После проведения некоторых исследований, похоже, что это не позволяет предотвратить межсайтовый скриптинг.

Я наткнулся на работу, которая должна была включать эту строку:

$.support.cors = true;

вверху моего кода JavaScript. Насколько я понимаю, это позволяет выполнять межсайтовый скриптинг в jQuery.

Делает ли эта строка кода мой сайт более уязвимым для атак? Я всегда слышал, что XSS обсуждается как проблема безопасности, есть ли законное использование XSS?

Ответы [ 3 ]

35 голосов
/ 23 октября 2011

XSS - это не та функция, которую можно включить в jQuery. Было бы очень очень необычно, если бы ядро ​​jQuery имело уязвимость XSS, но это возможно, и оно называется XSS на основе DOM.

«Распределение ресурсов между источниками» или CORS - это не то же самое, что XSS, НО , но если веб-приложение имеет уязвимость XSS, то у злоумышленника будет CORS-подобный доступ ко всем ресурсам. на этом домене. Короче говоря, CORS дает вам контроль над тем, как вы нарушаете такую ​​же политику происхождения , что вам не нужно вводить полную уязвимость XSS.

Функция запроса $.support.cors основана на заголовке ответа HTTP Access-Control-Allow-Origin. может быть уязвимостью. Например, если веб-приложение имеет Access-Control-Allow-Origin: * на каждой странице, у злоумышленника будет тот же уровень доступа, что и у XSS-уязвимости. Будьте осторожны, на каких страницах вы вводите заголовки CORS, и старайтесь избегать * в максимально возможной степени.

Итак, чтобы ответить на ваш вопрос: НЕТ веб-приложению никогда не нужно вводить уязвимость XSS, поскольку существуют способы обхода SOP, такие как CORS / jsonp / междоменные прокси / access-control- происхождение .

11 голосов
/ 21 октября 2011

Это может помочь, только если в вашем браузере включена поддержка CORS, но она еще не поддерживается jQuery:

Включение междоменных запросов в средах, которые еще не поддерживают cors, но поддерживаютразрешить междоменные запросы XHR (гаджет windows и т. д.), установить $ .support.cors = true ;.CORS WD

Установка этого свойства в true не может привести к уязвимости безопасности.

3 голосов
/ 30 сентября 2013

Когда хакер может внедрить код скрипта, чтобы изменить запросы к другому домену, он также может установить этот флаг javascript в скрипте.

Так что, если этот флаг установлен, он не сильно меняетсяв этот момент вторжения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...