雖然平靜api中沒有會話,但在平穩api中管理嘗試次數(例如登錄)的最佳/常用方法是什麼?管理平穩api中端點的嘗試次數
回答
創建像token_storage_tbl數據庫中的表,然後添加三列:TID(INT)255 PK AI,令牌(VARCHAR)1024,times_used INT(255)
然後,您可以使用您的連接查詢和增加times_used表。
$smtp = $pdo->Prepare('UPDATE token_storage_tbl SET times_used = ? WHERE token = ?');
$smtp->execute(array(....));
要找出它被使用多少次:
$maxUse = 3;
$smtp = $pdo->Prepare('SELECT times_used FROM token_storage_tbl WHERE token = ?');
if($smtp->execute(['token here'])->fetch()['times_used'] > $maxUse) {
// oh no... its been used too much
}
考慮到您使用的是RESTful,您向開發人員提供了一個令牌,然後將該令牌發送到端點以檢索信息,但是您不會強行停止該令牌?如果您正在考慮這條路線,最好記錄IP失敗嘗試並監控可疑活動。即:如果IP在過去一小時內錯誤地請求了5次數據,則會變得可疑。 – KDOT
仍然應該有一個令牌生成器端點,入侵者可以根據需要生成儘可能多的令牌! – HPM
不是真的,因爲您使用身份驗證。除非攻擊者請求的用戶確認攻擊者請求的訪問範圍,否則攻擊者不會生成該令牌,只有這樣他們纔可以檢索令牌並將其傳遞到終點。因此,確保用戶知道風險並能夠管理誰可以在後期訪問數據(如Auth 2.0)@HPM – KDOT
你所問的是爲您的休息API定製的安全邏輯。它不應該成爲其餘API的一部分。其餘部分不應該實現這樣的安全邏輯,應該只做它應該做的API。
現在您可以爲自定義安全邏輯添加一個分層,您可以添加一個過濾器來維護和審覈這些調用,並且可以用於增強API的安全性。
當然,您需要堅持驗證某個客戶端的通話計數。
API應該有它自己的安全邏輯。有一些端點向公衆開放,您需要限制訪問的數量。任何常見的方式來處理它? – HPM
- 1. 嘗試更新API管理器中的API時出錯
- 2. Wso2 API管理器:每個Tenant的不同API端點端口
- 3. Azure API管理和ASMX/WSDL SOAP端點?
- 4. 將API端點管理爲常量
- 5. WSO API管理端點和雲
- 6. 在Matlab中測試水平平穩性
- 7. WLST與管理端口的連接在第一次嘗試時始終失敗
- 8. 節點HTTP代理:根據響應嘗試不同的端點
- 9. Azure API管理 - API端點域與實際API URL
- 10. 節點/快遞:嘗試發送靜態JSON文件API端點
- 11. 嘗試使用Foursquare的API資源管理器通過
- 12. 嘗試通過Azure的網站管理REST API
- 13. WSO2 API管理器(1.6.0):發佈程序API(端點)
- 14. Django的:OperationalError當我嘗試從管理
- 15. Azure API管理:Oauth2與後端API
- 16. Google雲端點穩定性?
- 17. 進行asp.net web api的平穩調用
- 18. API管理節點脫機
- 19. 重試嘗試的最大次數
- 20. 的Ruby-on-軌調試管理平臺
- 21. 平穩調試和錯誤處理的良好實踐
- 22. 修改WSO2 API管理器中公開的API的端口
- 23. 錯誤時嘗試管理類
- 24. 錯誤嘗試在管理界面(playframework)
- 25. 如何在WSO2 API管理器中爲一個API使用多個端點?
- 26. 嘗試編譯websocketpp端點在G ++
- 27. 管理平臺API:不能捲曲
- 28. 限制Azure存儲隊列中消息處理嘗試次數
- 29. 管理數百次的NSLocalizedString
- 30. Bluemix中的API管理和雲中的API管理
根據定義,RESTful API是無狀態的,所以它不是處理需要狀態的登錄的好選擇。這就是說,記錄可疑活動並相應地阻止IP地址可能是一個好主意。 – Mike