保护数据库调用内部

时间:2018-02-10 21:26:57

标签: node.js database reactjs security express

我想在我的应用中添加数据库功能。我担心的一件事是,一个精通的对手可以只监控Chrome的网络表并直接点击我的终端。

最初,我认为我会在快递服务器后面锁定数据库调用,至少隐藏一些东西,但我觉得这还不够好。

BEST 案例中,他们绕过我的整个前端,并可以访问我的各种数据库调用。在最糟糕的情况下,他们可以获得大量用户信息。如果我在快递方面只有一个暴露的不安全/users/{id}端点,那么攻击者就有可能枚举所有用户。

这些东西通常如何处理?由于整个应用程序都在“浏览器中”存在,因此在正常的非单页面应用程序设置中不存在大量独特的安全威胁。

修改

一个可能的解决方案是Auth0来记录用户,将其关联到我的数据库中的帐户,然后使用JWT保护每个端点,但我宁愿不必为更多支付服务,如果我不需要。

1 个答案:

答案 0 :(得分:0)

您可以创建自己的中间件,在提供敏感信息的路线上添加额外的保护层:

import adminRouter from './admin'
        app.use('/admin', (req, res, next) => {
          if (req.user.isAdmin) {
            next()
           }
           els {
            next('you must be an admin!')
           }
         })
     app.use('/admin', adminRouter)