有没有办法在我的网站的Content-Security-Policy中包含firefox扩展弹出窗口?

问题描述

我想将iframe嵌入到firefox扩展的弹出窗口中,但显示 Firefox无法打开此页面-为了保护您的安全,www.example.com将不允许Firefox显示页面,如果“,这是因为网站example.com已将Content-Security-Policy配置为frame-ancestors 'self'。我可以将其更改为frame-ancestors *,但我希望范围不广。

解决方法

这取决于弹出窗口的起源(在<iframe src=<iframe srcdoc=中指定的来源)
有些起源是CSP法规的主题,而其他起源则不是。例如,诸如moz-extension: / chrome:之类的供应商方案应绕过CSP。

此外,“自我”令牌可能非常阴险:

,----------------- parent HTTP://example.com --------------------,|                                                                |
|  * Host-source is HTTP://example.com with the HTTP: scheme     |
|                                                                |
|  <iframe src='HTTPS://example.com'>                            |
|   Content-Security-Policy: frame-ancestors 'self'              |
|                                                                |
|    * 'self' would be substituted by HTTPS://example.com,it    |
|     means that you actually have the header:                   |
|   Content-Security-Policy: frame-ancestors HTTPS://example.com |
|     therefore it will block embedding into parent with         |
|     HTTP://example.com because of schemes mismatch             |
|     (HTTP: !== HTTPS:)                                         |
|                                                                |
|  <iframe>                                                      |
|________________________________________________________________|

但是相反的情况(使用HTTPS的父母:使用HTTP:的iframe)不会在CSP3浏览器中引起问题(但会在CSP2浏览器中引起问题)。

,

对于IIS,您需要将X-FRAME-OPTIONS标头从“ Deny”更改为“ SAME-ORIGIN”,或者添加X-FRAME-OPTIONS(如果不存在)。为此:

  • 打开IIS管理器,然后在左侧树上,左键单击要管理的站点。
  • 双击“ HTTP响应头”图标。
  • 右键单击标题列表,然后选择“添加”
  • 在“名称”中输入“ X-FRAME-OPTIONS”,在值中输入所需的选项,例如“ SAME-ORIGIN”。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...