如何在RESTful Web服务URI中保护密码参数?

时间:2010-04-26 17:11:16

标签: security rest

我是服务器端编程的新手,所以如果这变得混乱,请原谅我。我已经签约创建一个Web服务,允许经过身份验证的用户访问数据库。用户必须输入登录名和密码。我正在阅读和阅读关于REST与SOAP的内容,当我遇到这样的声明时,我认为我已经确定了RESTful设计:“不需要将安全的数据作为参数发送到URI中。”这似乎是对RESTful方法的一个主要缺点。我知道使用https密码将被加密以防止中间人拦截,但这会使服务器日志和客户端历史记录成为可能的暴露点。是否存在针对此问题的RESTful解决方案,或者我是否需要使用SOAPy?任何建议表示赞赏。

3 个答案:

答案 0 :(得分:1)

使用POST - 键入请求以传输必要的数据,并将敏感部分包含在已发布的字段中,以使其成为请求正文的一部分,而不是URI中的参数。

答案 1 :(得分:1)

我认为,要真正的REST,你应该使用HTTP身份验证(基本或摘要),因为被迫首先登录不符合REST的精神。

我希望能够很好地了解REST的人确认(或驳斥)这一点。

答案 2 :(得分:0)

这是您的Web服务器配置问题,而不是您的应用程序。错误配置可能导致漏洞,这就是一个很好的例子。 Web服务器也可以记录POST请求,这在Web应用程序防火墙检测到攻击时很常见。我会确保在apache中关闭日志记录,因为这可能不是您的应用程序正常运行所必需的。

另一种更常见的方法是使用cookie来维护会话。 cookie一直都必须用https保护。