Chrome постоянно находится в стадии активной разработки, время от времени выходят новые версии, в которых появляются новые функции и улучшается безопасность. Chrome используется не только для просмотра веб-страниц, но и для многих веб-сервисов, которые используют разработчики.
В последней сборке Chrome 57 обнаружение XSS-аудиторов было значительно улучшено. У них были установлены новые правила, из-за которых веб-сервисы перестали работать и выдавали сообщение об ошибке ‘ERR_BLOCKED_BY_XSS_AUDITOR‘.
Это сообщение об ошибке возникает, когда HTML-контент отправляется методом POST внутри запроса. В Google Chrome есть функция защиты от XSS, которая всегда анализирует HTML, отправляемый через формы, и блокирует эти запросы. Таким образом, формы никогда не будут отправлены и XSS-эксплойты будут исключены.
Что вызывает сообщение об ошибке ‘ERR_BLOCKED_BY_XSS_AUDITOR’ в Chrome?
Как уже говорилось ранее, в браузере недавняя сборка В Chrome переделали XSS Auditor, чтобы XSS-уязвимости не использовались. Из-за этого вы можете получить сообщение об ошибке, если вы не обновили исходный код соответствующим образом.
В большинстве случаев ложное срабатывание возникает, когда браузер считает, что осуществляется атака ‘межсайтового скриптинга’. Эти атаки происходят в основном тогда, когда браузер обманом заставляют отобразить JavaScript или HTML, которые не являются частью аспекта отображения веб-сайта.
Решение (если вы являетесь администратором сайта)
Если вы являетесь администратором сайта и это сообщение об ошибке возникает при нормальном использовании, вы можете попробовать удалить его, добавив некоторые заголовки страниц в POST-заголовки. Это временное решение, пока вы не найдете альтернативу, которая правильно обрабатывает запрос XSS Auditor.
PHP
Добавьте следующий заголовок в ваш PHP-файл:
header('X-XSS-Protection:0');
ASP.NET
Здесь мы временно отключаем XSS-защиту, пока вы не добавите соответствующий обработчик в свой исходный код.
HttpContext.Response.AddHeader("X-XSS-Protection", "0");
Если вы настраиваете Веб-сайт.Конфиг вместо этого можно добавить следующий код:
<система.webServer> <httpProtocol> <customHeaders> <add name="X-XSS-Protection" value="0" /> </customHeaders> [...]
ASP.NET Server Request Validation
В некоторых случаях сервер отклоняет POST-запрос, даже если мы добавили необходимый заголовок. Другим обходным решением является использование ‘Запрос.Недействительный‘, который будет объектом, созданным специально для обработки получения ‘небезопасных» данных запроса.
var code = Request.Не валидированный.Form["code"];
Скорее всего, это будет работать только для ASP.NET Валидация запросов.
Если вы используете веб-формы, вы можете использовать:
<@ Page validateRequest="false" %>
Если вы используете MVC, мы можем использовать ‘[ValidateInput(false)]‘, который является атрибутом контроллера. Это сделано для предотвращения валидации.
[ValidateInput(false)] public ActionResult Convert(CodeRequest request) { ... }
Настройки IIS HttpRuntime
IIS Express используется Visual studio для веб-сервисов и является одной из самых используемых архитектур на сегодняшний день. При использовании ASP.NET, IIS может заблокировать ваш запрос еще до того, как ASP.NET получает контроль. Мы попробуем отключить это в web.конфигурация и попробуем вернуть старое поведение, используя следующий код:
<httpRuntime requestValidationMode="2.0"/>
Если этого не сделать, IIS не справится и отклонит запрос еще до того, как он будет передан в ASP.NET .
Примечание: Эти обходные пути — хорошая идея, если ваш сайт недоступен и приносит вам убытки. Вы должны всегда Измените свой исходный код так, чтобы он мог правильно работать с XSS Auditor. Используйте их только временно, пока не сможете найти подходящее решение.
Решение (если вы не являетесь администратором сайта)
Если вы являетесь обычным пользователем и не имеете доступа к сайту или не управляете им, вы можете попробовать запустить Chrome без XSS Auditor. Мы создадим ярлык Google Chrome и добавим необходимые флаги для его запуска в наших условиях.
- Щелкните правой кнопкой мыши в любом месте рабочего стола и выберите Новый > Ярлык.
- Теперь вставьте следующие строки кода в соответствии с версией Google Chrome, установленной на вашем компьютере.
Для 64-битного Chrome
"C:\Program Files\Google\Chrome\Application\chrome.exe" -disable-xss-auditor
Для 32-разрядного Chrome
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -disable-xss-auditor
- Теперь будет создан ярлык Chrome. Теперь попробуйте зайти на сайт и проверьте, устранено ли сообщение об ошибке.
Примечание: Этот метод отключает XSS Auditor в вашем браузере, который является неотъемлемой частью механизма безопасности. Действуйте на свой страх и риск, рекомендуется использовать эту функцию только временно.