【问题标题】:How can I implement security in web service?如何在 Web 服务中实现安全性?
【发布时间】:2011-06-09 13:44:40
【问题描述】:

我有一个由移动应用调用的 REST 服务;我需要用户登录,然后服务会生成一个与用户 ID 关联的唯一令牌,并且这对 userId/token 将传递给对 WS 的每个后续调用。

我不太喜欢这个解决方案,因为即使非常困难,如果我更改 uid 并获得正确的令牌,我可以作为另一个用户“登录”,所以我试图了解哪个是最佳实践处理移动(和非)应用程序的 Web 服务身份验证。

【问题讨论】:

    标签: web-services authentication


    【解决方案1】:

    您的问题不在于方法,而是您的服务不是检查 UID 和令牌的组合,而是检查令牌。这是一个编程问题,而不是方法问题。

    您需要服务有多安全?你说的是最高机密级别的安全吗?银行业?我的足球俱乐部网站?为了获得高水平的安全性,您可以使用数字证书,但它提供了一种更复杂的配置方法。但是......即使您要从 UID/Token(或 AppId、User 等)更改,您仍然需要修复正确的令牌 + 错误的 UID 有效的事实。如果必须使用两种形式的身份验证,那就大错特错了。如果您没有在服务器端进行适当的编程以避免绕过系统,则更改方法将无法解决任何问题。

    您可能还想查看如何配置令牌。这应该是离线的,还是可以接受一种 REST 注册方法。这会回到您需要的安全级别。

    【讨论】:

    • 感谢您的回答;我不需要超高的安全性,但我需要一个用户看不到其他用户的数据。
    • 从您的帖子看来,需要在服务中修复 UID/Token 身份验证才能完成此操作。
    【解决方案2】:

    您可能想忘记令牌/ID 解决方案并考虑采用 SSL/基本身份验证路线。 SSL 将提供加密和安全通信,但不会保护对服务器端特定 Web 服务的访问。 为此,您可以在 每个 调用中尝试标准的基本 http 用户/密码身份验证。这样您就不必担心通过每个 REST 调用来维护状态。每个调用都会有一个对用户的显式引用。是的,您需要在每次调用时重新验证用户身份,这有点麻烦,但您可以缓存结果。 但是,我远不是这方面的专家。

    【讨论】:

      猜你喜欢
      • 2010-09-20
      • 1970-01-01
      • 2012-11-24
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 2012-06-08
      • 2015-08-30
      相关资源
      最近更新 更多