我有一個合理完整的REST服務,並將與iOS應用程序一起使用。它是使用Ruby/Sinatra構建的,但我認爲這並不重要。如何保護REST服務的「公共」部分免受垃圾郵件侵害?
我通過SSL爲各種端點使用HTTP基本身份驗證,該部分工作得很好。
問題是: 如何阻止垃圾郵件發送者等調用未通過HTTP基本認證保護的REST服務的某些部分?
示例:用戶註冊
讓我們假設REST呼叫是(POST).../register_account傳遞JSON對象在體內。
由於顯而易見的原因,此調用不能期望鏈接到用戶帳戶的用戶名/密碼。
思路是:
1)應用程序有其自己的「用戶名」 /密碼,一些通話將檢查應用程序的憑據。 問題:啓動設備等可能會發現這些憑據。
2)應用程序通過HTTP標頭將祕密標記傳遞給REST服務以進行這些調用。 問題:與(1)相同
是否有任何常用於防止此類垃圾郵件呼叫的技術?我想可能會在iPhone中引入iPhone的設備ID,但尚未確定明確的方法。
感謝
進行比較。我將使用這個gem:https://github.com/datagraph/rack-throttle進行速率限制。我將繼承它,以便客戶端標識符是設備ID + IP地址的組合。也將堅持應用憑證的想法。 – Riaz