• iframe 相关选项 x-frame-options: 设置 meta 标签无效 & helmet


    The X-Frame-Options HTTP 响应头是用来给浏览器 指示允许一个页面 可否在 <frame>, <iframe>, <embed> 或者 <object> 中展现的标记。

    站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免 clickjacking 攻击。

    The added security is only provided if the user accessing the document is using a browser supporting X-Frame-Options.

    Content-Security-Policy HTTP 头中的 frame-ancestors 指令会替代这个非标准的 header。

    CSP 的 frame-ancestors 会在 Gecko 4.0 中支持,但是并不会被所有浏览器支持。

    然而 X-Frame-Options 是个已广泛支持的非官方标准,可以和 CSP 结合使用。

    X-Frame-Options 有三个可能的值:

      # 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

      X-Frame-Options: deny

      # 表示该页面可以在相同域名页面的 frame 中展示。

      X-Frame-Options: sameorigin

      # 表示该页面可以在指定来源的 frame 中展示。

      X-Frame-Options: allow-from https://example.com/

    注意:

      设置 meta 标签是无效的!

      例如 <meta http-equiv="X-Frame-Options" content="deny"> 没有任何效果。

      不要这样用!只有当像下面示例那样设置 HTTP 头 X-Frame-Options 才会生效。

    Apache:

      Header set X-Frame-Options "sameorigin"

    Nginx:

      add_header X-Frame-Options sameorigin always;

    HAProxy:

      http-response set-header X-Frame-Options sameorigin

    Express:

      const helmet = require('helmet');

      const app = express();

        app.use(helmet.frameguard({ action: "sameorigin" }));  // app.use(helmet()) 使用所有安全策略

      

    在 Firefox 尝试加载 frame 的内容时,如果 X-Frame-Options 响应头设置为禁止访问了,那么 Firefox 会用 about:blank 展现到 frame 中。

    也许从某种方面来讲的话,展示为错误消息会更好一点。

    Refer:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/X-Frame-Options

    Refer:https://www.npmjs.com/package/helmet

    Link:https://www.cnblogs.com/farwish/p/15484863.html

  • 相关阅读:
    我到 vim 配置文件---------修改从---http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html
    Bayer图像处理
    Ubuntu 12.04下安装OpenCV 2.4.2
    vim寄存器与复制粘贴的实现
    window 驱动
    js 面试题
    angular 写的一个分页功能
    angular scope 方法
    avalon 框架
    贴几个常用的基础函数
  • 原文地址:https://www.cnblogs.com/farwish/p/15484863.html
Copyright © 2020-2023  润新知