![](/img/trans.png)
[英]Web security. Am I protecting my REST api properly? (node.js express)
[英]node.js - REST API security. SSL or OAuth2?
我正在构建一个nodejs表达REST API。 我有以下设置。
API服务器(nodejs)从mongodb返回数据。
Web服务器(nodejs)托管角度Web应用程序。
谷歌的一点点告诉我,我应该使用OAuth2来保护我的REST API。
一些链接还建议我使用SSL。
我不清楚SSL是否是OAuth2的替代解决方案,或者我应该将其与OAuth2一起使用以提高安全性?
如果我使用SSL进行Webserver和API服务器之间的通信! 我还需要使用OAuth2吗?
我是“第一次使用API构建器”。 如果这个问题听起来很模糊,我很抱歉。
为客户端应用程序构建API并不罕见。 有时将负责API的应用程序与负责托管客户端应用程序的应用程序分开是有意义的(在这种情况下,它似乎是一个Angular应用程序)。 但是,要知道这些可以是同一个,并且可能被推荐,直到它们变得足够大以分离出来。 如果它们是分开的,您将很快遇到同源策略问题,并且可能需要将客户端应用程序的请求代理到单独托管的API应用程序 - 或者您可以使用某些东西在同一域和代理下运行它们像nginx或apache。 所有这些,你可以考虑从这两个开始作为一个应用程序开始。
继续使用安全性, SSL是一种保护客户端与服务器连接的方法(最简单的方法就是将其视为HTTPS)。 这是一个很好的策略,建议有人在客户端和服务器之间传输数据后实施,而其他人不应该查看。 知道SSL不是特定于Node.js或REST,而只是保护Web请求/响应通信的一种方式。
在保证请求的情况下,您仍然需要知道谁在提出请求,以及他们是否有权访问他们所要求的内容。 证明您的身份是身份验证 ,您可以做的是授权 。 有许多方法可以进行身份验证,一旦您这样做,通常由应用程序负责决定用户的授权。 OAuth是一种帮助这一过程的方法,并且通过Facebook,Google,Twitter等登录网站变得流行。 有许多工具可以帮助您将OAuth与应用程序集成, Passport是Node的更受欢迎的选择之一。
所以你的问题有点模糊,但希望这可以帮助你理解SSL和OAuth之间的区别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.