在PhantomJS中禁用内容安全策略

时间:2018-01-14 05:43:00

标签: phantomjs content-security-policy

我试图在PhantomJS(2.1.1)的page.evaulate()调用中使用WebSocket。尝试连接到WebSocket服务器时,出现以下错误:

SecurityError: DOM Exception 18: An attempt was made to break through the security policy of the user agent.

我可以通过转到about:config并将security.csp.enable设置为false来禁用Firefox中的CSP。执行此操作后,我可以将PhantomJS脚本中的相同代码粘贴到Firefox中的控制台中,没有任何问题。

是否可以在PhantomJS中禁用内容安全策略? (我尝试设置page.webSecurityEnabled = falsepage.localToRemoteUrlAccessEnabled = true无效。)

1 个答案:

答案 0 :(得分:4)

PhantomJS最新稳定版2.1.1在尝试获取具有以下响应标头的网页时出现错误: content-security-policy:default-src' none'

修复: 分支2.1.1,文件:\ phantomjs \ src \ qt \ qtwebkit \ Source \ WebCore \ page \ ContentSecurityPolicy.cpp ,更改第354行:

, m_allowEval(false)

要:

, m_allowEval(true)

然后build.py -r ...享受!