繁体   English   中英

如何保护公共nodejs api仅对来自前端的请求

[英]how securing a public nodejs api to only requests from the frontend

我有一个节点前端快递服务器和一个节点api快递服务器。

如何最好地确保仅对api的请求是从前端Express服务器发出的?

没有用户身份验证,因此用户将不会随每个请求发送jwt。

最简单的方法是使用Helmet.js设置内容安全策略,然后可以使用Helmet轻松添加其他安全功能。

const helmet = require('helmet')

app.use(helmet.contentSecurityPolicy({
  directives: {
    defaultSrc: ["'self'"],
    // styleSrc probably not needed but you can set those too
    styleSrc: ["'self'", 'maxcdn.bootstrapcdn.com']
  }
}))

这有效地告诉浏览器“仅加载来自我自己域的内容”

https://helmetjs.github.io/docs/csp/

https://github.com/helmetjs/helmet

在我看来,你应该

  1. 将api服务器的防火墙配置为仅接受仅具有端口443的前端Express服务器的IP地址。
  2. 请在每个API的标头中添加基本身份验证,然后前端必须在所有API调用的标头中附加一些用户名/密码或密码。
  3. 在您的服务器API中,请同时包括您的安全性库,例如helmet.js。 它可以帮助您保护API服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM