限制哪些网站可以通过网络应用嵌入iframe的最佳(最安全)方法是什么?
例如,应该拒绝所有人不在列表中:
作为一个后续问题,鉴于对上述内容的任何限制,找出服务器端哪个白名单网站正在进行嵌入的最安全方法是什么?
答案 0 :(得分:5)
使用X-Frame-Options
HTTP header。
X-Frame-Options ALLOW-FROM http://example.com/
另请参阅具有此建议的MSDN documentation:
请注意,Allow-From令牌不支持通配符或列表 多个起源。对于服务器希望允许更多的情况 如果不是一个页面来构建其内容,则以下设计模式是 建议:
- 外部IFRAME使用a提供自己的原始信息 内部IFRAME的src属性上的查询字符串参数。这个可以 显然是由攻击者指定的,但没关系。
- 服务器 内部IFRAME验证提供的Origin信息是否满足 商业惯例所要求的标准。例如,服务器 为IFRAME提供社交网络的“赞”按钮, 可能会检查提供的Origin是否与Origin匹配 期望的那个Like按钮,以及指定的所有者 Origin拥有有效的联盟关系等。
- 如果满意的话 提供的信息,内部IFRAME的服务器发送 X-FRAME-OPTIONS:allow-from supplyorigin header
- 浏览器然后 强制执行X-FRAME-OPTIONS指令。
醇>
答案 1 :(得分:0)
X-Frame-Options响应标题
使用X-Frame-Options X-Frame-Options有三种可能的值:
DENY
:
无论网站是否尝试这样做,页面都无法在框架中显示。SAMEORIGIN
:
页面只能显示在与页面本身相同的原始框架中。ALLOW-FROM uri
:
页面只能显示在指定原点的框架中。