Подтвердить что ты не робот

Безопасно ли использовать $.support.cors = true; в jQuery?

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

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

$.support.cors = true;

в верхней части моего кода javascript. Из того, что я понимаю, это позволяет создавать скрипты в jQuery.

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

Чтобы разрешить междоменные запросы в средах, которые не поддерживают но все же разрешают кросс-доменные запросы XHR (гаджет Windows и т.д.), set $.support.cors = true;. CORS WD

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

Ответ 3

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

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