休息 : Correct HTTP verb to check a password

标签 rest restful-architecture

我阅读了许多有关在 GET 请求中传递敏感数据的文章,但没有找到适合我需求的答案。

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

GET http://api.domain.com/security/password/P@55w0rd

我发现 GET HTTP 动词合适,因为我只想要密码足够安全。

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

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

最佳答案

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

根据以下文章,您不应使用 GET 作为密码,是的,您可以使用 POST 或在 HTTP header 中传递某些内容。

REST Security Cheat Sheet

Session management RESTful web services should use session-based authentication, either by establishing a session token via a POST or by using an API key as a POST body argument or as a cookie. Usernames, passwords, session tokens, and API keys should not appear in the URL, as this can be captured in web server logs, which makes them intrinsically valuable.

关于休息 : Correct HTTP verb to check a password,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43974353/

相关文章:

rest - postman :设置环境变量

java - 我们如何将 REST 服务部署为 jar?

php - 如何让 Laravel 返回 JSON REST API 的自定义错误

javascript - dojo.store.Observable、JSON REST 和 queryEngine

HTTP 协议(protocol)外的 RESTful

api - 使用 JWT(JSON Web token )设置 token 过期的 RESTful API

获取子集列表的 REST 最佳实践

php - PHP 中的 REST API 输出到 JSON 文件扩展

不支持 Spring/Postman 内容类型 'application/octet-stream'

mysql - SlashDB 在 MySQL 中执行存储函数后不提交事务