ERR_BLOCKED_BY_XSS_AUDITOR при загрузке файла с использованием селена - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь загрузить файл, используя selenium, имитируя нажатие кнопки загрузки, но Chrome сообщает ERR_BLOCKED_BY_XSS_AUDITOR.Если я использую аргумент "--disable-xss-auditor" для обхода, страница будет перезагружена и ничего не будет загружено.Что мне кажется странным, так это то, что когда я на самом деле загружаю файл с помощью мыши в сеансе Chrome, который даже контролируется selenium, файл загружается хорошо.

Пожалуйста, помогите мне понять, что делает xss auditor?Почему я не могу скачать файл с selenium?

Кстати, я использую python, если это важно.

Спасибо

Ответы [ 3 ]

0 голосов
/ 16 января 2019

Я замедлил клики (2 клика, необходимых для загрузки, добавил сон между ними), и это работает! Понятия не имею, что случилось ...

0 голосов
/ 16 января 2019

X-XSS-Protection

Заголовок ответа HTTP X-XSS-Protection - это функция Internet Explorer, Chrome и Safari, которая предотвращает загрузку страниц при обнаружении отраженных межсайтовых сценариев ( XSS ). Хотя эти средства защиты в значительной степени не нужны в современных браузерах, когда сайты реализуют строгую Content-Security-Policy , которая запрещает использование встроенного JavaScript ('unsafe-inline'), они все же могут обеспечить защиту для пользователи старых веб-браузеров, которые еще не поддерживают CSP.

Header type               Response header
-----------               ---------------
Forbidden header name     no

Синтаксис

  • X-XSS-Protection: 0: отключение фильтрации XSS.
  • X-XSS-Protection: 1: включает фильтрацию XSS (обычно по умолчанию в браузерах). Если обнаружена атака с использованием межсайтовых сценариев, браузер очистит страницу (удалит небезопасные части).
  • X-XSS-Protection: 1: mode = block Включает фильтрацию XSS. Вместо того, чтобы дезинфицировать страницу, браузер предотвратит рендеринг страницы, если обнаружена атака.
  • X-XSS-Protection: 1: report = (только хром) Включает фильтрацию XSS. Если обнаружена атака с использованием межсайтовых сценариев, браузер очистит страницу и сообщит о нарушении. При этом используется функция директивы report-uri CSP для отправки отчета.

Фон

Согласно Намерение отправить: изменения в XSS Auditor Chromium команда сделала два изменения:

  • Измените поведение по умолчанию на X-XSS-Protection: 1; mode=block, которое блокирует загрузку страницы путем перехода к уникальному источнику при обнаружении XSS, а не отфильтровывает конкретные сценарии.
  • Устаревший режим фильтра с намерением полностью удалить его в будущем.

Статус реализации

XSS Auditor блокирует по умолчанию : Chrome XSS Auditor должен блокировать страницы по умолчанию, а не отфильтровывать подозрительно отраженные XSS. Более того, мы должны удалить опцию фильтрации, так как разрыв отдельных фрагментов скрипта страницы был самим вектором XSS в прошлом.

Согласно XSS Auditor: заблокировать по умолчанию, удалить фильтрацию эта проблема обсуждалась и была предпринята попытка исправить. Некоторое дополнительное обсуждение произошло в ложных срабатываниях с ERR_BLOCKED_BY_XSS_AUDITOR и, наконец, в ERR_BLOCKED_BY_XSS_AUDITOR на добросовестном сайте при публикации на форуме команда Chromium решила статус: WontFix

Решение

Вам нужно активировать WebDriverWait , чтобы требуемый элемент был кликабельным . Вот несколько примеров реализации WebDriverWait :

  • Java

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.linkText("text_within_the _link"))).click(); 
    
  • Python

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "text_within_the _link"))).click()
    
  • C # :

    new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.LinkText("text_within_the _link"))).Click();
    

Ссылки

0 голосов
/ 16 января 2019

XSS Auditor - это встроенная функция Chrome и Safari, предназначенная для предотвращения атак с использованием межсайтового скриптинга (XSS). Он призван определить, содержат ли параметры запроса вредоносный JavaScript-код, и заблокировать ответ, если он считает, что полезные данные были введены в ответ сервера.

XSS - это уязвимость, которая возникает, когда данные (неправильно) интерпретируются как код и выполняются в браузере жертвы. Идея состоит в том, чтобы использовать автономный браузер, такой как Selenium WebDriver, и внедрять полезные нагрузки XSS вместе с функциональными тестами и тестами взаимодействия с пользователем

Python не имеет к этому никакого отношения, я думаю, что это может быть версия Chrome или что-то еще

Я поделился ссылкой, которая поможет вам лучше понять.

Chrome: ERR_BLOCKED_BY_XSS_AUDITOR Подробнее

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