【发布时间】:2020-03-27 13:37:02
【问题描述】:
我正在开发单页应用程序并选择用于用户会话、cookie 或本地存储的方案。特别是,我正在考虑 CSRF 攻击场景。恕我直言,最合理的 CSRF 攻击方案是在不可见的 iframe 中自动提交表单。但它是如何工作的呢?
假设我是maliciouswebsite.net 的开发人员,在我的页面上我正在创建一个不可见的 iframe,指向bank.com 网站上的某个页面,目的是让用户访问maliciouswebsite.net 并登录@ 987654324@,通过在不可见的 iframe 中自动提交表单,不情愿地将钱寄给我。
但在这种情况下,iframe 中的代码将无法从 maliciouswebsite.net 编写脚本,因为它将被视为跨域,并且浏览器将不允许 maliciouswebsite.net 主框架中的 javascript 使用 @ 的元素进行操作987654327@隐形框。
另一种情况是maliciouswebsite.net 只是呈现一个不可见的 iframe,其形式为 action=bank.com/api/transfer_money?...。所以这个 iframe 的 Origin 仍然是maliciouswebsite.net。但在这种情况下,表单不会在bank.com 看到用户的 cookie,也不会被允许做任何事情,对吧?
【问题讨论】:
标签: iframe cross-domain csrf