Это информационное сообщение ...
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
... было результатом ошибки, вызванной ChromeDriver v2.46
Анализ
Согласно обсуждению 2.46 создает неожиданный файл debug.log, если включено подробное ведение журнала , в функции InitLogging () logging.cc некоторое ведение журнала сообщения были написаны слишком рано даже до вызова logging::InitLogging
(в последней строке функции). Это оказалось OK в Linux и Mac OS, где место назначения журнала по умолчанию находится там, где это ожидается. Но в Windows местом назначения журнала по умолчанию является файл с именем debug.log
.
Итак, ChromeDriver команда должна была удалить два VLOG
вызова до конца метода после вызова logging::InitLogging
.
Эта проблема была устранена с помощью commit , а исправление было доступно в ChromeDriver 73.x
Защита портов, которые использует chromedriver
Мы ничего не можем сделать с использованием порта, так как @barancev упоминает ChromeDriver пытается найти свободный эфемерный порт , используя системно-зависимый эфемерный детектор диапазона портов. эфемерный порт является недолговечной конечной точкой, которая создается операционной системой, когда программа запрашивает любой доступный пользовательский порт. Операционная система выбирает номер порта из предварительно определенного диапазона, обычно от 1024 до 65535, и освобождает порт после завершения соответствующего TCP-соединения.
По умолчанию система может создать максимум около 4000 временных портов, которые одновременно работают в Windows Server 2003, и приблизительно 16 000 в Windows Server 2008.
Решение
Обновление до ChromeDriver 73.x решит эту проблему.
Outro
Эти сообщения журнала были отражением ChromeDriver - соображения безопасности .
ChromeDriver - это мощный инструмент, который может нанести вред не тем, кто в руках. При использовании ChromeDriver соблюдайте следующие рекомендации, чтобы обеспечить его безопасность:
- По умолчанию ChromeDriver разрешает только локальные подключения. Если вам необходимо подключиться к нему с удаленного хоста, используйте переключатель
--whitelisted-ips
в командной строке, чтобы указать список IP-адресов, которым разрешено подключаться к ChromeDriver.
- Если возможно, запустите ChromeDriver с тестовой учетной записью, у которой нет доступа к конфиденциальным локальным или сетевым данным. Никогда не запускайте ChromeDriver с привилегированной учетной записью.
- Если возможно, запускайте ChromeDriver в защищенной среде, такой как Docker или виртуальная машина.
- Используйте брандмауэр для предотвращения несанкционированного удаленного подключения к ChromeDriver.
- Если вы используете ChromeDriver через сторонние инструменты, такие как Selenium Server, обязательно защитите сетевые порты этих инструментов.
- Используйте последние версии ChromeDriver и Chrome.
Вы можете найти список запрещенных портов в Chrome здесь .