2016-12-31 54 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可能會更有用。