代码之家  ›  专栏  ›  技术社区  ›  Jader Dias

服务是否应在每次请求时请求凭据?

  •  4
  • Jader Dias  · 技术社区  · 14 年前

    1. 每个请求都会发送用户/密码

    有别的选择吗?哪个更好?为什么?

    3 回复  |  直到 14 年前
        1
  •  5
  •   Steve Jessop    14 年前

    取决于协议。

    同样地,即使登录事务不安全,至少如果它只发生一次,窃听就稍微困难一些。使用起来也有点困难。

    如果你不关心安全性,我甚至不会使用用户名/密码,只是一个API密钥。相当于相同的东西,但如果用户不选择它,那么至少它不会类似于他们的任何其他密码,所以它不会影响其他任何东西时,它被盗。

    AFAIK说,如果你足够关心安全性,以至于所有的事情都是通过https完成的,那么你使用什么样的身份识别机制并没有多大区别。所以做一些简单的事情。

        2
  •  0
  •   softveda    14 年前

    顺便问一下,你在考虑性能吗?我建议在每次请求时发送凭据并进行身份验证,除非您真的发现这是一个瓶颈。SSL根本不够,它只提供web服务的加密和身份验证。但是想想客户端身份验证(客户端证书在这里可以帮助)和授权,可能不是所有的web服务用户都被允许调用所有的方法,所有的方法调用都需要记录下来进行审计。在这种情况下,每次调用都需要显示用户身份。

    我开发并维护了一个基于SOA的核心系统web服务,该服务是在WCF中开发的,它使用windows身份对基于.Net的客户端进行身份验证和授权,并对Java客户端使用双向certs身份验证,我没有性能问题。

        3
  •  0
  •   Jader Dias    14 年前

    史蒂夫·杰索普为我澄清了一些事情:

    1. 如果凭证被记住了,我应该在收到凭证后提供一个临时身份验证cookie,

    2. 但是如果凭证是数字存储的,那么我应该只使用API密钥,因为任何可以访问凭证存储的人都不需要访问cookie