XSS 和单页应用程序
我正在研究网络安全,并且已经看到基于令牌的身份验证对 CSRF 预防、分布式系统架构和处理性能有好处。
但另一个问题是 XSS。不是专门讨论注入本身,而是库。对于单页应用程序,开发人员通常会在他们的代码中包含数百个不同的模块,这些模块以后可能会在应用程序投入生产时恶意执行。
修补 XMLHttpRequest
所以我有了修补 XMLHttpRequest 属性并控制原始“本机代码”功能的想法,防止第三方代码发出 ajax 请求。
(function () {
// my code
let XHR = window.XMLHttpRequest
window.XMLHttpRequest = null
})()
// load third-party code after...
我在控制台中使用 facebook 和 youtube 对此进行了测试......他们所有的 ajax 加载内容都停止工作。
恶意示例
未捕获的恶意行为的一个示例是仅通过检查 window.location 是否类似于“app.x.com”而在生产中执行的代码,因此开发人员在开发过程中没有意识到 ajax 请求。
修补 XMLHttpRequest 属性可以防止这种情况发生,并考虑到所有其他措施都可以防止 XSS(清理),这将缩小最终差距并让您控制网络请求,防止恶意代码窃取身份验证令牌。
最后的怀疑
这种方法有什么警告吗?(安全方面)