3

我希望用户能够在域 example1.com 上的应用程序中提交和呈现不受信任的 HTML。为了防止恶意 XSS 捕获用户的 cookie,我们的想法是在使用不同域(例如 example2.com)的 iframe 中打开 HTML。但是为了看到这个 HTML,用户必须在 example1.com 上登录。仅当用户在 example1.com 上登录并通过身份验证时,如何仅在 example2.com 上的 iframe 中呈现 HTML?

我在想也许使用通过 postMessage 传递的秘密,该秘密发布一个表单来呈现 HTML,而无需设置 cookie。每当我想通过 JavaScript 更新 iframe 的内容时,我只需重新创建 iframe,然后再次传入密码并再次发布表单以呈现不受信任的 HTML。恶意 JavaScript 无法访问该密钥,因为该密钥仅存在于发布表单的前一页中。这是一个好的解决方案还是有更好的解决方案?

4

1 回答 1

5

每次用户登录 example1.com 时,您都会为它创建一个令牌。

要调用您的 iframe 内容,请使用 example2.com/view.php?page=1&token=dsjahdjkhjh331

所以恶意脚本只能获取token,不能获取cookie。而且,如果您为令牌创建“指纹”,例如将用户与请求地址(IP)+浏览器代理连接起来,那么窃取令牌就像窃取随机字符串一样。

于 2013-05-05T01:26:33.560 回答