网络安全:我们应该在单页应用程序中保护javascript文件吗?

问题描述 投票:0回答:1

我正在研究一个新项目。我正在为该项目使用ReactJS。我开发了初始框架,其中index.html文件加载了标准main.bundle.js。用户点击URL时,转到登录路径,登录后转到仪表板路径。

现在,我的一个团队成员在说这是一个安全问题,因为整个捆绑包会立即加载,并且攻击者可以看到整个JS代码,尤其是其余端点及其签名。因此,团队说要分开auth和app捆绑包。他们说的是,当用户未通过身份验证时,提供具有login.bundle.js的serve login.html,并在登录具有main.bundle.js的served index.html时可以最大程度地降低攻击者的负担。在提供main.bundle.js的同时,应检查用户是否已通过身份验证(使用cookie中存在的auth令牌)

现在,我们已经使用JWT令牌OAuth2流保护了所有其余端点。但是仍然建议将身份验证添加到我们的主要js文件中。

我想了解最佳实践。是过度设计还是做对的事情?

javascript reactjs security spring-security single-page-application
1个回答
0
投票

您可以将React应用程序拆分为多个SPA。每个SPA将由自己的较小的捆绑包渲染,加载速度更快。如果TypeScript适合您,则可以使用Crisp React样板实现。我是作者。

您的网络服务器可以进行修改,以确保未经身份验证的用户只能下载登录包。自述文件中提到了这种可能性。

良好的安全性始终是多层的,除非用户登录,否则无法下载主要捆绑包,当然可以提供附加保护。这种特殊的保护措施很薄弱,因为它实际上是通过隐匿性实现的安全性。当单独使用时,这永远都不够好,但与其他安全措施结合使用,以形成多层防御时,效果很好。

回到Crisp React,它由两个子项目组成:React客户端和Express后端。如果您的服务器使用Spring,则只能使用client子项目将拆分分成多个SPA。

© www.soinside.com 2019 - 2024. All rights reserved.