Предупреждение: ошибка подделки межсайтового запроса включена с Selenium Chromedriver Python - PullRequest
0 голосов
/ 20 января 2019

Я не могу перейти непосредственно на веб-страницу с driver.get('https://example.com')

На веб-сайте отображается сообщение:

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

Но если я использую реализацию ActionChains от Selenium,

ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()

, я могу успешно перейти через веб-сайт на новую веб-страницу 'https://example.com'

Я пытался сохранить и восстановить куки.Не удалось.

Что еще мне нужно сделать, чтобы использовать driver.get() для перехода на различные веб-страницы сайта?

1 Ответ

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

Подделка межсайтовых запросов (CSRF)

Подделка межсайтовых запросов (CSRF) - это атака, которая вынуждает конечного пользователя выполнять нежелательные действия в веб-приложении, в котором онив настоящее время аутентифицированыCSRF-атаки специально направлены на запросы об изменении состояния, а не на кражу данных, поскольку злоумышленник не может увидеть ответ на поддельный запрос.С небольшой помощью социальной инженерии (такой как отправка ссылки по электронной почте или в чате) злоумышленник может заставить пользователей веб-приложения выполнить действия по выбору злоумышленника.Если жертва является обычным пользователем, успешная атака CSRF может заставить пользователя выполнять запросы на изменение состояния, такие как перевод средств, изменение адреса электронной почты и т. Д.Если жертва является учетной записью администратора, CSRF может поставить под угрозу все веб-приложение.

Поэтому при использовании Selenium ActionChains реализация выглядит так:

ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()

Предположительно, вы заходите на какую-то другую веб-страницу, где устанавливается сеанс и многие другие атрибуты сеанса аутентифицируются.На следующем шаге вы используете реализацию Selenium ActionChains для вызова click() на WebElement , который приведет вас на новую веб-страницу https://example.com.

Но в вашем альтернативном подходе вы пытаетесь перейти непосредственно к веб-странице https://example.com, где отсутствуют обязательные атрибуты сеанса .Следовательно, сеанс в этом случае не устанавливается, и вы видите Warning как:

Warning: cross-site request forgery control is enabled

Solution

Более простым решением будет следовать фактическому потокуто есть доступ к начальной веб-странице, где будет установлен сеанс и аутентифицированы необходимые атрибуты сеанса.На следующем шаге вы можете использовать реализацию Selenium ActionChains для вызова click() на нужном веб-элементе, который приведет вас на новую веб-страницу https://example.com.

Альтернатива

В качестве альтернативы вы можете создайте профиль Chrome и используйте назначенный профиль Chrome для хранения атрибутов SessionAttributes и повторного использования согласно вашему требованию.

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