REST:更正HTTP谓词以检查密码

REST:更正HTTP谓词以检查密码,rest,restful-architecture,Rest,Restful Architecture,我读了很多关于在GET请求中传递合理数据的帖子,但没有找到适合我需要的答案 我必须公开一个RESTful资源来检查密码强度 GET http://api.domain.com/security/password/P@55w0rd 我发现GETHTTP动词很合适,因为我只希望密码足够安全 问题是客户端将被迫在资源(即URL)中传递它 一些同事告诉我使用POST,然后将其传递到数据体中,但我不确定它的RESTful程度。REST标准只是说使用HTTP动词。它实际上并不要求你使用特定的。然而,关于使

我读了很多关于在GET请求中传递合理数据的帖子,但没有找到适合我需要的答案

我必须公开一个RESTful资源来检查密码强度

GET http://api.domain.com/security/password/P@55w0rd
我发现
GET
HTTP动词很合适,因为我只希望密码足够安全

问题是客户端将被迫在资源(即URL)中传递它


一些同事告诉我使用
POST
,然后将其传递到数据体中,但我不确定它的RESTful程度。

REST标准只是说使用HTTP动词。它实际上并不要求你使用特定的。然而,关于使用哪个动词,POST创建和GET检索数据,出现了一些约定,但是如果这会导致问题,则不应严格遵守

根据下面的文章,您不应该使用GET作为密码,是的,您可以在HTTP头中使用POST或pass

会话管理 RESTful web服务应该使用基于会话的身份验证,通过POST建立会话令牌,或者使用API密钥作为POST主体参数或cookie。用户名、密码、会话令牌和API密钥不应出现在URL中,因为这可以在web服务器日志中捕获,这使它们具有内在价值


您可能想考虑使用HTTPS以及使用POST,否则您可能会暴露所有的密码,以查看可能的重复的“DIJKGRAFF”,是的,我通过HTTPS公开我的资源。问题是我们的logaccess将记录每个请求的URL。@Dijkgraaf所以可以使用POST动词而不是GET?它有多RESTful?请永远不要在URI中发送敏感数据。如果是这样,请使用HTTP头。特别是
授权
头是一个非常好的头,因此。可以通过收到的状态代码确定请求是否成功。至于要使用的实际HTTP操作,我会选择POST,因为对它的响应在默认情况下是不可缓存的,其目的不是检索某些状态,而是验证请求是否工作