2016-12-31 62 views
2

我正在做一个基本的RESTful API,我对安全性有所怀疑。针对前端的API安全性

我使用OAuth2安全系统在PHP中实现了一个基本的RESTful API,它适用于HTTP。

如果我有我的前端(也许是一个Angular2应用程序),它会消耗我的API的一些方法(主要是获取方法)。此前端对OAuth2发送标头用户,密码和API标记进行身份验证,并且API使用令牌进行响应以使用它。这可以由我的前端的简单用户捕获并使用吗?

有没有办法保护没有HTTPS的API?

+3

我强烈建议您对发送用户名和密码的每个请求都使用https。现在没有利用这些连接的缺点,因为它们不使用太多的服务器资源 – rpi

+0

您可以与您共享密钥合作伙伴,然后验证与你配置的一个 –

+0

@NishantNair什么伙伴?分享它如何? – jonrsharpe

回答

1

没有办法保护API(或网站,就此而言),而不使用HTTP。

如果您正在运行用户需要登录的任何类型的服务,则使用HTTPs是绝对必需的。

无论您使用哪种安全协议(OAuth2,基本身份验证,SAML等),与终端用户在同一WiFi网络上的任何人,可能能够查看的任何人用户和服务器之间的网络流量,或CLIENT计算机上可以查看网络流量的服务器上的任何恶意应用程序都可以查看纯文本凭据和令牌。

这将始终导致黑客/等

如果你想避免HTTPS进行某种原因,你真不应该!您可以通过Let's Encrypt以及Amazon和其他提供商获得免费证书。

如果您正在寻找继续使用HTTP而不是HTTPS的理由,那么您可能需要阅读这个优秀的article on the subject: Why HTTP is Sometimes Better than HTTPS。 =)

0

OAuth2需要HTTPS,因为它旨在将安全性委托给较低层的手中,因此不再需要客户端手头拥有加密库;有关更多详情,请参阅this answer

如果无法保证服务器上的HTTPS可用性,那么对于您的情况OAuth1.0a可能会更有用。