2010-11-05 152 views
0

我记得在前一段时间读取了来自web浏览器的所有GET请求都被记录下来。它是否正确?这些日志位于哪里?GET请求,安全性和Web服务

如果是的话是否有任何解决方法来防止记录您的webservice用户名和密码?

我知道我可以改变我的web服务接受POSTS(如果我记得正确的文章说没有记录),但我有这个问题是目前web服务接受GETS并返回JSON和POSTS返回XML。这似乎是一个方便的功能,我想保留。

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

回答

2

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

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

并回答您的具体问题 - 不,如果它们是请求URL的一部分,则无法阻止Web服务器记录用户凭据。但是,您可以(也应该)更改您的代码,以至少不以纯文本格式发送凭据,但至少使用由当前会话开始时由Web服务生成的哈希值对它们进行哈希处理(并将cookie例)。由于cookie未在服务器上记录,并且会话之间的哈希值发生变化,因此有人无法仅从日志文件提取凭据。

在附注上,您还应该更改服务,以根据请求中指定的接受内容类型(而不是请求动词)来决定响应格式。

0

获取请求存储在浏览器历史记录中。这就是为什么当你开始在地址栏中输入网址时,它可以自动完成。