Chr*_*ois 5 security authentication vue.js server-side-rendering nuxt.js
我使用带有nuxt.render中间件的 Express 后端来整合我的 API、前端和开发环境。到目前为止,一切都很顺利,但我对我的身份验证设置的安全性有一些担忧。
我的后端通过 Nuxt 中间件将其用户会话注入 Vuex。虽然这对于限制访问非常有效,但这些文件的源代码始终可以通过直接 GET 方法获得。(例如,如果/admin受保护,/_nuxt/admin.js将仍然可用,并将包含该页面的整个源代码)。最糟糕的是,由于preloadNuxt 放置在头部的默认链接,即使未登录,它们也会自动获取。
我知道这没有很多安全问题,因为我的管理 API 调用在服务器端强制执行身份验证,但有时(就我而言),公开源代码是不可取的。
我想出了一个很好的解决方案,虽然不是很优雅:
在nuxt.config.js,我设置render.resourceHints = false。我希望我不必这样做就可以从可用路由的预取中受益,但似乎没有办法限制预取路由的选择。
在插入next.renderExpress 的中间件链之前,我有选择地限制页面的源代码。(例如app.get('/_nuxt/pages/admin.js', restrict),如果未通过身份验证,则restrict返回一个中间件,如果是401,则调用next()。这会阻止 XHR 获取和直接 GET。)
我制作了一个自定义error.vue模板,在那里我捕获了 Nuxt 如果被迫访问用户不应访问的路由时将抛出的错误消息,看起来像Loading chunk 1 failed,并将其规范化为“禁止”错误页面。
是否有我想念的更务实的方法,或者这超出了 Nuxt.js 目前提供的范围?
| 归档时间: |
|
| 查看次数: |
792 次 |
| 最近记录: |