WEB安全~X-Frame-Options

X-Frame-Options 是一个HTTP响应头,用于控制网页是否可以嵌套在 <frame>, <iframe>, <embed> 或者 <applet> 中。通过设置 X-Frame-Options 头部,网站管理员可以防止网页被嵌套到其他网站的框架中,从而有效防范点击劫持等安全风险。下面是关于 X-Frame-Options 的介绍:

1. 作用:

  • X-Frame-Options 头部用于指示浏览器是否允许当前页面在 <frame>, <iframe>, <embed> 或者 <applet> 中显示。
  • 可以防止点击劫持攻击,保护用户数据和隐私。

2. 常见取值:

  • DENY 表示拒绝页面在任何框架中显示,即不允许嵌套。
  • SAMEORIGIN 表示只允许页面在相同域名的框架中显示,防止跨域嵌套。

3. 配置方式:

  • 在HTTP响应头中添加 X-Frame-Options 字段,并指定为 DENYSAMEORIGIN,如 X-Frame-Options: DENY
  • 可以根据具体需求设置不同的取值来限制页面的嵌套行为。

4. 优势:

  • 防止点击劫持: 通过限制页面的嵌套行为,有效防范点击劫持等安全风险。
  • 提高网站安全性: 增强网站的安全性,保护用户数据和隐私信息不受攻击。

5. 注意事项:

  • 合理配置: 根据网站实际情况和安全需求,选择合适的 X-Frame-Options 配置。
  • 与其他安全头部结合使用: 可以将 X-Frame-Options 与其他安全相关的 HTTP 头部一起使用,共同加固网站的安全防护。

通过配置适当的 X-Frame-Options 头部,可以有效地防止网页被嵌套到其他网站的框架中,提升网站的安全性,保护用户数据和隐私信息。

常用配置

  • 只容许被baidu.com这个域名嵌套iframe:ALLOW_FROM baidu.com,它包括了子域名和不同端口等,例如a.baidu.com,b.baidu.com:8081等
  • 只被同域名网站嵌套:SAMEORIGIN (在a.hello.com中配置,那么在b.hello.com中也无法嵌套它)
  • 拒绝所有网站嵌套:DENY
  • 不配置X-Frame-Options:表示开放所有,没有保护
  • 容许本域名和baidu.com进行嵌套:SAMEORIGIN;ALLOW_FROM baidu.com

参考资料:http://tools.ietf.org/html/rfc7034