如何保护chromedriver使用的端口?

Lew*_*iad 2 java google-chrome webdriver selenium-chromedriver selenium-webdriver

通常,当我运行chromedriver时,我总是得到此输出,我确信每个人在运行chromedriver时都会得到。这不是全部输出,而是有关特定语句的。

Only local connections are allowed. 
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
Run Code Online (Sandbox Code Playgroud)

正如标题所说的,我总是得到输出。如何确保端口ChromeDriver仅使用受保护的端口?

Deb*_*anB 5

此信息消息...

Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
Run Code Online (Sandbox Code Playgroud)

...是ChromeDriver v2.46引发的错误的结果


分析

根据讨论,如果启用了详细日志记录,则2.46会生成意外的debug.log文件,在logging.ccInitLogging()函数中,甚至在调用之前(在函数的最后一行,某些日志记录消息还为时过早。事实证明,这是正常的LinuxMac的 OS,其中默认的日志目标是它的预期。但是在Windows上,默认日志目标是名为的文件。logging::InitLoggingdebug.log

因此,ChromeDriver团队需要VLOG在调用后将两个调用移至方法末尾logging::InitLogging

通过提交可以解决此问题,ChromeDriver 73.x中提供了此修复程序

保护chromedriver使用的端口

有没有什么我们可以做端口用法@barancev 提到 ChromeDriver试图找到一个免费的临时端口使用依赖于系统的临时端口范围探测器。一个临时端口是由当程序请求任何可用的用户端口的操作系统创建一个短命的端点。操作系统从预定义的范围(通常在1024到65535之间)中选择端口号,并在相关的TCP连接终止后释放端口。

默认情况下,系统最多可以创建大约4,000个临时端口,这些端口在Windows Server 2003上同时运行,在Windows Server 2008上同时运行大约16,000个。


升级到ChromeDriver 73.x将解决此问题。


奥托罗

这些日志消息反映了ChromeDriver-安全注意事项

ChromeDriver是一个功能强大的工具,它可能在错误的手中造成伤害。使用ChromeDriver时,请遵循以下建议以确保其安全:

  • 默认情况下,ChromeDriver仅允许本地连接。如果您需要从远程主机连接到它,请--whitelisted-ips在命令行上使用switch来指定允许连接到ChromeDriver的IP地址列表。
  • 如果可能,请使用无法访问敏感的本地或网络数据的测试帐户运行ChromeDriver。ChromeDriver绝对不能使用特权帐户运行。
  • 如果可能,请在受保护的环境(例如Docker或虚拟机)中运行ChromeDriver。
  • 使用防火墙来防止未经授权的远程连接到ChromeDriver。
  • 如果您通过第三方工具(例如Selenium Server)使用ChromeDriver,请确保也保护这些工具的网络端口。
  • 使用最新版本的ChromeDriver和Chrome。

您可以在此处找到Chrome上受限端口的列表。