我開發了一個移動應用程序,通過RESTful API連接到我的Web服務。如何使https請求和加密POST參數?
現在,我需要通過WireShark嗅探它的人來保護我的API。我只需要以某種方式隱藏我的URL和POST參數...我該怎麼做?
我的風險在於,如果「有人」讓我的API的地址和更改?每個請求可以作爲另一個用戶的USER_ID參數,並做壞事......
(我不使用OAuth 2.0)
我開發了一個移動應用程序,通過RESTful API連接到我的Web服務。如何使https請求和加密POST參數?
現在,我需要通過WireShark嗅探它的人來保護我的API。我只需要以某種方式隱藏我的URL和POST參數...我該怎麼做?
我的風險在於,如果「有人」讓我的API的地址和更改?每個請求可以作爲另一個用戶的USER_ID參數,並做壞事......
(我不使用OAuth 2.0)
做到這一點,最簡單的方法是使用HTTPS
客戶端連接到服務器
客戶端和服務器進行SSL握手 客戶端發送加密類似
POST /resource/ HTTP1.1
Name=Jonathan+Doe&Age=23&Formula=a+%2B+b+%3D%3D+13%25%21
我有兩個項目,這將有所幫助。
https://github.com/jas-/jQuery.AJAX提供了一個REST API的有用示例,其中包含用於序列化發佈數據校驗和以及CSRF令牌處理的選項。
該項目使用JS對錶單數據進行非對稱公鑰加密。 https://github.com/jas-/jQuery.pidCrypt。
請記住,瀏覽器中可用的隨機數生成器存在已知限制,可能會導致弱加密,因此建議將連接包裝在SSL連接中。
第一步是切換到HTTPS。這將加密您的POST參數。
你的第二步是修復你的協議來驗證用戶。始終可以對協議進行反向工程。如果唯一身份驗證是user_id參數,那麼您很脆弱。沒有任何混淆會保護你。您的協議必須對未授權的應用程序的連接具有彈性