簡體   English   中英

SignalR - 如何保護客戶端以確保用戶不會創建自己的客戶端

[英]SignalR - how to secure client to make sure that the user doesn't create his own client

我目前正在開發一些基於 rest api/signalr (C#/.Net Core) 的應用程序后端。 兩種協議都是開放的 - 我如何確保后端僅與授權的應用程序一起使用並阻止創建未經授權的客戶端的可能性?

你不能。 您必須始終假設客戶端是敵對的,但基於 HTTP 的技術尤其如此。 無論您嘗試在客戶端中提供什么證明,通常都可以由具有適當動機的惡意方提取並用於他們被黑客入侵的敵對客戶端。 或者更有可能:他們可以使用瀏覽器工具或 Fiddler 等工具來查看、操作和重播命令。

所有邏輯都必須在服務器上。 如果客戶端想要復制邏輯以獲得更好的用戶體驗,很好:但您不能信任客戶端做出的任何裁決 - 服務器必須重新檢查。

這取決於您希望鎖定對后端的訪問的嚴重程度。 但一般來說,解決信任問題並不便宜。

  • 調查諸如 SSL 固定和證書透明度之類的事情,這是一個好的開始,但並非萬無一失
  • 接下來看看 API 管理網關 (APIM),它可以放在 API 的前面來管理訪問。 這通常通過給客戶一個訪問令牌來工作。 但是這個令牌可能會被泄露。 更好的方法是通過由用戶特定訪問令牌控制的網關訪問 API。 但這並不總是實用的。
  • 如果這不符合您的訪問控制要求,您需要添加一個 Web 應用防火牆(有時稱為 WAF),它可以監控、過濾和阻止不需要的流量

無論您采取何種方法,通常您想鎖定多少都取決於您需要投資多少。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM