Отказался от загрузки сценария 'xyz.js', поскольку он нарушает следующую директиву Content Security Policy с ChromeDriver Chrome Selenium без головы - PullRequest
0 голосов
/ 04 марта 2019

Я использую Селен без хрома и получаю сообщение об ошибке из-за ошибки при загрузке образа, поскольку он нарушает следующую директиву Content Security Policy.Я анализирую сторонний URL.Итак, какие изменения или опции мне нужно установить в селене, чтобы удалить ошибку.

1 Ответ

0 голосов
/ 04 марта 2019

Политика безопасности контента

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

CSP не предназначен в качестве первой линии защиты от уязвимостей внедрения контента.Вместо этого CSP лучше всего использовать в качестве углубленной защиты.Это уменьшает вред, который может причинить вредоносная инъекция, но не является заменой для тщательной проверки ввода и кодировки вывода.

Директивы политики безопасности контента

Согласно Директивы политики безопасности контента Чтобы снизить риск атак с использованием межсайтовых сценариев, веб-разработчики должны включать директивы, регулирующие источники сценариев и подключаемых модулей.Они могут сделать это, включив:

В любом случае разработчики не должны включать либо 'unsafe-inline', либо data: в качестве допустимых источников в свои политики.Оба включают атаки XSS, позволяя включать код непосредственно в сам документ;Лучше всего их избегать полностью.

Политика безопасности содержимого Chrome

Чтобы уменьшить большой класс потенциальных проблем межсайтового скриптинга, в систему расширений Chrome включена общая концепция политики безопасности контента (CSP).Это вводит некоторые довольно строгие политики, которые делают расширения более безопасными по умолчанию, и дает вам возможность создавать и применять правила, управляющие типами контента, который может загружаться и выполняться вашими расширениями и приложениями.

InВ общем, CSP работает как механизм блокировки / разрешения для ресурсов, загружаемых или выполняемых вашими расширениями.Определение разумной политики для вашего расширения позволяет вам тщательно рассмотреть ресурсы, которые требуются вашему расширению, и попросить браузер убедиться, что это единственные ресурсы, к которым у вашего расширения есть доступ.Эти политики обеспечивают безопасность сверх разрешений хоста ваших запросов на расширение;это дополнительный уровень защиты, а не замена.

В Интернете такая политика определяется с помощью заголовка HTTP или метаэлемента.Внутри системы расширения Chrome также нет подходящего механизма.Вместо этого политика расширения определяется через файл manifest.json расширения следующим образом:

{
  ...,
  "content_security_policy": "[POLICY STRING GOES HERE]"
  ...
}

Решение

  • Создание нового Профиль Chrome
  • Перейдите на страницу расширения для Отключите Content-Security-Policy и Добавьте в Chrome навсегда.
  • Используйте тот же настроенный Chrome Profile вместе с расширением при запуске скрипта:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument("user-data-dir=C:\\Users\\user_name\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 2")
    driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=options)
    driver.get("https://www.google.co.in")
    

tl;dr

...