代码之家  ›  专栏  ›  技术社区  ›  Maxim Gershkovich

获取请求、安全和Web服务

  •  0
  • Maxim Gershkovich  · 技术社区  · 15 年前

    我记得以前读过一篇文章,所有来自webbrowser的GET请求都被记录下来了。这是对的吗?这些日志在哪里?

    如果是的话,有什么办法可以阻止记录你的webservice用户名和密码吗?

    关于这种情况,最佳做法是什么?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Franci Penov    15 年前

    特定的问题是GET请求进行身份验证,其中用户凭据以纯文本形式作为查询参数发送到URL。大多数web服务器都会记录所有请求的谓词和URL,因此当凭据位于URL的一部分时,它们将显示在web服务器日志中。

    另一方面,POST请求通常发送请求主体中的数据,因此它不会显示在web服务器日志中,因为标准日志配置不会记录请求的负载。也就是说,即使您切换到使用POST,管理员仍然可以配置宿主web服务器来记录每个请求的负载。

    并且要回答您的特定问题-不,如果用户凭据是请求URL的一部分,则无法阻止web服务器记录这些凭据。但是,您可以(并且应该)将代码更改为至少不以纯文本发送凭据,而是至少在当前会话开始时使用web服务生成的哈希盐对它们进行哈希(例如放入cookie)。由于cookies没有记录在服务器上,并且在会话之间散列盐会发生变化,因此没有办法让某人仅从日志文件中提取凭据。

    另一方面,您还应该更改服务,以根据请求中指定的接受内容类型(而不是请求谓词)确定响应格式。

        2
  •  0
  •   atk    15 年前

    推荐文章