javascript - 如何保护小部件免受伪造请求

标签 javascript security browser widget clickjacking

假设您有一个 JavaScript 小部件,当且仅当用户想要点击它时,它需要向您的 Web 应用程序发出请求。您不希望此请求容易受到 CSRF 的攻击,因此您将 iframe 写入页面。基于origin inheritance rules父站点将无法读取 CSRF token 。但是点击劫持(或 likejacking )呢?由于 CSRF,您必须在 iframe 中并且有 x-frame-options帮不上忙,frame-busters也是如此.

攻击者将应用 SVG mask小部件加载后的 iframe。此掩码将使 iframe 不可见。此时,攻击者可以将 iframe 的大小调整为页面的大小,或者让这个现在不可见的 iframe 跟随光标。无论哪种方式,无论何时用户点击页面上的任何地方,iframe 都会收到点击事件并结束游戏。

因此存在二元性,您似乎陷入了 CSRF 和点击劫持之间。这个问题的最佳解决方案(如果有的话)是什么?

最佳答案

点击小部件需要打开一个包含新页面的弹出窗口——iframe 不够好,它必须是一个新窗口——这完全在你的网络应用程序的控制之下。在该页面上确认操作,无论是什么。

是的,这有点不雅,但目前的 Web 安全架构并没有给您任何更好的选择。

关于javascript - 如何保护小部件免受伪造请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7328295/

相关文章:

javascript - js/jquery 传递数组项

java - 如何存储需要真实值的密码?

c# - “No Application is associated with specified file for this operation”

javascript - 在 window.open 请求中添加 header 的可能方法

javascript - 无法将没有 YogaNode 的 child 添加到没有测量功能的 parent ! (试图将 'ReactRawTextShadowNode' 添加到 'LayoutShadow

javascript - 将 javascript 生成的 PDF 文件上传到服务器

javascript - 将变量从 Ruby 传递到 JavaScript

php - 自制验证码,安全吗?

ios - 使用安全框架在 Objective-C 中以编程方式创建 x509 证书

java - 浏览器如何管理 Cookie