使用 Selenium IDE 调用被 CSP 阻止的 eval()
Call to eval() blocked by CSP with Selenium IDE
我在 Selenium IDE
开发了一个 selenium 测试。我在这个套件中有一个步骤应该在文本字段中键入一个值。它在该步骤失败并出现以下错误:
18. click on id=firstName Failed:11:12:59
call to eval() blocked by CSP
CSP
内容安全策略(CSP) acts as a added layer of security that helps to detect and mitigate attacks including Cross Site Scripting (XSS)和数据注入攻击。这些攻击主要用于窃取数据和分发恶意软件。
这个错误信息...
call to eval() blocked by CSP
...意味着 add-on 正在被 Selenium IDE 使用在 CSP header.
中包含 'unsafe-eval'
根据基于 Firefox add-on needs 'unsafe-eval' in CSP header the earlier version of Firefox were not able to detect Ember.js 的应用程序的讨论,如果服务器在 [=14] 中发送 内容安全策略 header 而没有 'unsafe-eval'
=] 指令。
这个问题在讨论 Convert Firefox add-on to use the Chrome WebExtension and was addressed through a installable WebExtension which can be found here 中进行了详细讨论。
更新
根据 OP 的评论,一种更简单的方法是在 about:config
中调整以下 Key-Value 以解决问题:
security.csp.enable off
参考
中找到相关讨论
在 about:config
中禁用 CSP 是 no longer possible since Firefox 99。
另一种解决方案是使用 Web 扩展程序,您可以在其中更有选择地选择 enable/disable。
假设我们要授权在 https://www.example.org/
:
上执行 JS (script-src: 'unsafe-eval'
)
首先安装
Firefox extension ModHeader(在其他浏览器上也可用)。安装后,
打开面板:
单击 +
图标并添加 Response header
:作为名称类型 Content-Security-Policy
和值类型 script-src: 'unsafe-eval'
。
单击 +
图标上的更多时间并添加一个 Filter
。对于 URL pattern
类型 https:\/\/www.example.org/
.
您可以在 CSP website 上准确选择 enable/disable 的内容。
如前所述,security.csp.enable
option has been removed as of Firefox 99. While there are third party extensions to allow manipulating the CSP header (),请确保作者值得信赖。
还有一个官方的 Mozilla 扩展也可以使用:Laboratory, with an associated Laboratory video tutorial。
安装完成后,基本步骤:
- 打开您要使用 Selenium 测试的网站 IDE
- 点击实验室扩展
- 选择“自定义 CSP 策略”
- 根据需要添加许可 CSP,例如allow everything
- 然后保存策略 运行 Selenium IDE 正常
我在 Selenium IDE
开发了一个 selenium 测试。我在这个套件中有一个步骤应该在文本字段中键入一个值。它在该步骤失败并出现以下错误:
18. click on id=firstName Failed:11:12:59
call to eval() blocked by CSP
CSP
内容安全策略(CSP) acts as a added layer of security that helps to detect and mitigate attacks including Cross Site Scripting (XSS)和数据注入攻击。这些攻击主要用于窃取数据和分发恶意软件。
这个错误信息...
call to eval() blocked by CSP
...意味着 add-on 正在被 Selenium IDE 使用在 CSP header.
中包含'unsafe-eval'
根据基于 Firefox add-on needs 'unsafe-eval' in CSP header the earlier version of Firefox were not able to detect Ember.js 的应用程序的讨论,如果服务器在 [=14] 中发送 内容安全策略 header 而没有 'unsafe-eval'
=] 指令。
这个问题在讨论 Convert Firefox add-on to use the Chrome WebExtension and was addressed through a installable WebExtension which can be found here 中进行了详细讨论。
更新
根据 OP 的评论,一种更简单的方法是在 about:config
中调整以下 Key-Value 以解决问题:
security.csp.enable off
参考
中找到相关讨论在 about:config
中禁用 CSP 是 no longer possible since Firefox 99。
另一种解决方案是使用 Web 扩展程序,您可以在其中更有选择地选择 enable/disable。
假设我们要授权在 https://www.example.org/
:
script-src: 'unsafe-eval'
)
首先安装 Firefox extension ModHeader(在其他浏览器上也可用)。安装后, 打开面板:
单击 +
图标并添加 Response header
:作为名称类型 Content-Security-Policy
和值类型 script-src: 'unsafe-eval'
。
单击 +
图标上的更多时间并添加一个 Filter
。对于 URL pattern
类型 https:\/\/www.example.org/
.
您可以在 CSP website 上准确选择 enable/disable 的内容。
如前所述,security.csp.enable
option has been removed as of Firefox 99. While there are third party extensions to allow manipulating the CSP header (
还有一个官方的 Mozilla 扩展也可以使用:Laboratory, with an associated Laboratory video tutorial。
安装完成后,基本步骤:
- 打开您要使用 Selenium 测试的网站 IDE
- 点击实验室扩展
- 选择“自定义 CSP 策略”
- 根据需要添加许可 CSP,例如allow everything
- 然后保存策略 运行 Selenium IDE 正常