【问题标题】:SignalR - how to secure client to make sure that the user doesn't create his own clientSignalR - 如何保护客户端以确保用户不会创建自己的客户端
【发布时间】:2021-05-13 23:45:23
【问题描述】:

我目前正在开发一些基于 rest api/signalr (C#/.Net Core) 的应用程序后端。两种协议都是开放的 - 我如何确保后端仅与授权的应用程序一起使用并阻止创建未经授权的客户端的可能性?

【问题讨论】:

    标签: c# asp.net-web-api signalr


    【解决方案1】:

    这取决于您希望锁定对后端的访问的严重程度。但一般来说,解决信任问题并不便宜。

    • 调查 SSL Pinning 和证书透明度之类的东西,这是一个好的开始,但并非万无一失
    • 接下来查看一个 API 管理网关 (APIM),它可以放在 API 前面以管理访问。这通常通过给客户一个访问令牌来工作。但是这个令牌可能会被泄露。更好的方法是通过由用户特定访问令牌控制的网关访问 API。但这并不总是可行的。
    • 如果这不符合您的访问控制要求,则需要添加一个 Web 应用程序防火墙(有时称为 WAF),它可以监控、过滤和阻止不需要的流量

    无论你采取什么方法,通常你想锁定多少取决于你需要投资多少。

    【讨论】:

      【解决方案2】:

      你不能。您必须始终假定客户端是敌对的,但尤其基于 HTTP 的技术更是如此。无论您尝试在客户端中提供什么证明,通常都可以由具有适当动机的恶意方提取并用于他们被黑客入侵的敌对客户端。或者更有可能:他们可以使用浏览器工具或 Fiddler 等工具来查看、操作和重播命令。

      所有逻辑都必须在服务器上。如果客户端想要复制逻辑以获得更好的用户体验,那很好:但您不能相信客户端做出的任何裁决 - 服务器必须重新检查。

      【讨论】:

        猜你喜欢
        • 2012-06-19
        • 2017-10-18
        • 2017-06-29
        • 1970-01-01
        • 1970-01-01
        • 2012-04-24
        • 2016-11-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多