【问题标题】:Restrict download from server限制从服务器下载
【发布时间】:2018-10-18 18:46:06
【问题描述】:

限制客户端通过其 ID 从服务器请求项目的最佳方法是什么,除非客户端还具有“密钥”(或其他东西)。是否对响应进行加密,以便只有在您拥有密钥的情况下才能使用它?或者你应该只将项目从服务器发送到客户端,客户端在请求中也有更好的密钥?或者也许是一个完全不同的过程?我正在使用 golang,但应该与语言无关。

【问题讨论】:

    标签: go server download request client-server


    【解决方案1】:

    看起来您需要的是一个身份验证系统。我建议您使用 JWT。一旦用户通过身份验证,客户端将获得一个令牌,您可以使用私钥在您的服务器中读取该令牌。如果用户有一个有效的令牌您的服务将允许下载。

    【讨论】:

    • 作为 JWT 的预防措施,请注意您必须验证 alg 字段是否为您所期望的字段。这是 JWT 规范的一个已知漏洞。 auth0.com/blog/…
    • 是的!顺便说一句,这里是 JWT 在 go github.com/dgrijalva/jwt-go 中的一个很好的实现
    • 这是我目前正在使用的。
    • 还有一个陷阱。不要将 JWT 私钥留在代码存储库或数据库中。它应该作为环境变量或只有您的应用程序可以访问的其他文件读入。如果有人拿到它,他们可以签署自己的代币。
    猜你喜欢
    • 2017-03-15
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    相关资源
    最近更新 更多