在什么情况下应该使用X-Frame-Options
HTTP标头?
HTTP标头,指示浏览器是否应允许网页显示在另一个网页的框架中。用于抵御点击劫持攻击。
这仅适用于包含<form>
元素的网页吗?
这仅在网页执行HTTP POST
请求时才有意义吗?
这是针对电子商务网站上的结帐页面吗?
它应该用于哪些场景?
答案 0 :(得分:0)
简单的答案是:到处都不需要框架。
框架可能很危险,因为它允许您在另一个网站中加载一个完全正常工作的网站,并可能在称为click-jacking的过程中虚假地与其进行交互。
比如说我设置了一个虚假网站,其网址看起来像一个真正的网上银行网站。通过构建真实网站而不是必须努力创建虚假副本,这更容易。然后我在用户名和密码字段的顶部创建假输入字段并读入这些值,然后坐下来收集用户名和密码。
所以你可能会争辩说,或许你只需要在带有表单的页面上这样做,但实际上为什么要自己努力并且必须决定并记得在每个页面上用表单设置它?只需为整个网站设置一次并忘记它。
同时允许对其他“非重要”页面进行取景,以及如上所述轻松忘记一个页面,可以轻松伪造整个网站,然后只需手动伪造登录或结帐页面。因此,我可以设置一个虚假版本的Amazon.com,构建整个Amazon.com,使其看起来真实可信,然后,一旦您退房,就会将您重定向到我的结帐页面。伪造一页而不是整个网站要容易得多。
回到我原来对你的问题的回答:你为什么不想把这个标题放到各处?是的,每个响应中都有一些额外的字节,但除非你有一个高度优化的网站,否则这是非常明显的。是的,它在技术上不是一个标准(因此名称的X位),但每个主流浏览器支持它的主要“DENY”和“SAMEORIGIN”变体,所以为什么不使用它?