EDIT:在单页应用程序中,所有静态内容都加载在SPA中,因此,如果静态内容中有任何远程敏感内容,可以在浏览器中查看。唯一的解决方案是不使用SPAs并从服务器端呈现授权页面,如果这些页面需要modelview AJAX JS控制器,则不要在控制器代码中导出任何敏感内容,因为这也将是静态的。
我研究了VueRouter的代码,并阅读了其他几个例子,这些例子使用保护和预检查来执行身份验证(通过cookie或会话数据令牌(,以阻止某些路由,除非用户有权限。
我不明白这怎么安全?VueRouter示例阻塞了仪表板页面,但我可以直接查看所谓的";"阻塞";页面,然后在源面板中编辑JavaScript,通过删除requireAuth函数中的检查并替换为"next(("来绕过授权。
我显然遗漏了一些东西,但如果内容和javascript可以在浏览器中进行查看/编辑,这是如何授权您网站部分内容的有效方法?
保护您的应用程序应该在后端完成,因为您可以完全控制该机器。正如您明确指出的,VueRouter通常用于显示/隐藏UI元素,具体取决于身份验证和授权。您必须始终假设任何人都可以在本地机器中读取和修改您的前端。
需要明确的是,无论您使用的是Vue、React还是任何其他前端框架,都必须在后端应用安全性。