内容安全政策指令:“框架祖先”缺失但在那里?

时间:2018-09-25 19:34:16

标签: content-security-policy

我正在开发一个nodejs电子应用程序,在我的index.html中,我有一个类似于以下内容的“ Content-Security-Policy”

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy"
      content="
      default-src     'self' https://*.mydomain.tld;
      script-src      'self' https://*.mydomain.tld;
      style-src       'self' https://*.mydomain.tld;
      img-src         'self' https://*.mydomain.tld;
      font-src        'self' https://*.mydomain.tld;
      connect-src     'self' https://*.mydomain.tld;
      media-src       'self' https://*.mydomain.tld;
      object-src      'self' https://*.mydomain.tld;
      child-src       'self' https://*.mydomain.tld;
      frame-ancestors 'self' https://*.mydomain.tld;
      frame-src       'self' https://*.mydomain.tld;
      worker-src      'self' https://*.mydomain.tld;
      form-action     'self' https://*.mydomain.tld;
      block-all-mixed-content;
      ">

当我运行该应用程序时,它可以正常运行,所有资产都可以正常加载,但是在控制台中出现以下错误

  

通过元素传递的内容安全策略可能不会   包含frame-ancestors指令。 index.html:4

我一直在尝试消除该错误,并寻找可能导致该错误的原因,但找不到任何东西,对我来说似乎都是正确的,但我仍然收到该错误,我还认为该错误可能是由服务器@https://*.mydomain.tld,所以我尝试了

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy"
      content="
      default-src     'self';
      script-src      'self';
      style-src       'self';
      img-src         'self';
      font-src        'self';
      connect-src     'self';
      media-src       'self';
      object-src      'self';
      child-src       'self';
      frame-ancestors 'self';
      frame-src       'self';
      worker-src      'self';
      form-action     'self';
      block-all-mixed-content;
      ">

造成完全相同的错误的原因是,我可以完全忽略该错误,因为该应用程序确实可以正常运行,并且该错误似乎未引起任何问题,但是,如果有人知道什么地方可能出了什么问题,我将不胜感激。< / p>

编辑:当我删除帧祖先时,标签看起来像这样

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy"
      content="
      default-src     'self' https://*.mydomain.tld;
      script-src      'self' https://*.mydomain.tld;
      style-src       'self' https://*.mydomain.tld;
      img-src         'self' https://*.mydomain.tld;
      font-src        'self' https://*.mydomain.tld;
      connect-src     'self' https://*.mydomain.tld;
      media-src       'self' https://*.mydomain.tld;
      object-src      'self' https://*.mydomain.tld;
      child-src       'self' https://*.mydomain.tld;
      frame-src       'self' https://*.mydomain.tld;
      worker-src      'self' https://*.mydomain.tld;
      form-action     'self' https://*.mydomain.tld;
      block-all-mixed-content;
      ">

错误消失了,我不应该补充吗?

1 个答案:

答案 0 :(得分:1)

因为meta元素不支持此指令。 看https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors

仅在服务器的“响应”上。