我目前正在构建浏览器帮助程序对象.
一件事的BHO所要做的是使绕过跨域策略跨站点请求.
为此,我公开了__MyBHONameSpace.Request一种WebClient内部使用的方法.
然而,我发现任何使用我的BHO的人现在都有一个CSRF漏洞,因为智能攻击者现在可以从我客户的计算机发出任意请求.
有没有聪明的方法可以缓解这种情况?
完全防止此类攻击的唯一方法是将页面JavaScript的执行上下文与扩展程序的JavaScript代码分开.
当我研究这个问题时,我发现Internet Explorer确实提供了一种实现这种上下文创建的方法,即通过IActiveScript.我没有实现此解决方案,原因如下:
IActiveScript)是否是无障碍和面向未来的(见2),我决定放弃这个想法.我所做的是:
localStorage在某个域上使用,并通过<iframe>使用postMessage API 与此域通信.这种方法适用于所有浏览器,而不仅仅是安装了我的BHO的IE,所以当有一种方法已经适用于所有现代浏览器时,任何攻击者都不太可能花时间对我的BHO进行逆向工程以使用API(IE8 + ).https://trusted.example.com并欺骗用户访问https://trusted.example.com."在本机代码中强制执行"并不意味着"本机代码中的硬代码".您仍然可以提供包含元数据和JavaScript代码的更新.MSVC++(2010)支持ECMAScript样式的正则表达式<regex>,这使得实现基于正则表达式的白名单非常容易.
如果您想继续使用IActiveScript,可以在ceee,Gears(已停产)或任何其他试图增强IE脚本环境的项目的源代码中找到示例代码.
| 归档时间: |
|
| 查看次数: |
359 次 |
| 最近记录: |