微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – CSRF和iframe

在防止CSRF攻击时,我应该采取以下步骤:

>用户登录,设置会话cookie并生成CSRF令牌
>用户提交表单(带令牌),它应该与会话中的令牌匹配

但是当攻击者使用iframe时,它还会发送导致相同CSRF令牌的会话cookie,iframe中的表单也将包含令牌.所以攻击者可以访问.

在这里错过了什么?

解决方法:

您错过了IFrame在相同原始策略下无法完全访问Window对象的事实,除非它们的起源匹配. Details here

JavaScript APIs such as iframe.contentwindow, window.parent,
window.open and window.opener allow documents to directly reference
each other. When the two documents do not have the same origin, these
references provide very limited access to Window and Location objects

因此,攻击者的框架将无法读取window.document,也无法读取任何包含形式的CSRF字段.

但是,您确实需要担心Clickjacking.这是您的网站加载到IFrame中然后变得透明的地方,用户被诱使点击攻击者页面上的内容(例如“赢取iPad点击此处”),这实际上导致点击实际发生在敏感在您的页面中的功能.

建议使用X-Frame-Options: DENY内容安全策略frame-ancestors指令来防止对您的站点进行框架.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐