【发布时间】:2018-07-12 00:41:00
【问题描述】:
我想从应用程序后端检索数据。我必须通过前端网站的 API 请求发送用户的电子邮件才能执行此操作。
在 GET 请求或 POST 请求中发送用户电子邮件是一种好习惯吗?更具体地说,不将用户电子邮件作为 URL 参数包含在内是否是一种好习惯,因为您不希望其他第三方看到它?
谢谢
【问题讨论】:
我想从应用程序后端检索数据。我必须通过前端网站的 API 请求发送用户的电子邮件才能执行此操作。
在 GET 请求或 POST 请求中发送用户电子邮件是一种好习惯吗?更具体地说,不将用户电子邮件作为 URL 参数包含在内是否是一种好习惯,因为您不希望其他第三方看到它?
谢谢
【问题讨论】:
您绝对希望使用POST 请求而不是GET 请求来查询电子邮件地址,因为GET 请求应该永远用于发送敏感信息。 p>
考虑到这一点,您还必须首先考虑您对端点所做的工作。如果您只是请求关于电子邮件地址的公开信息(例如解析服务器名称或 IP),那么 GET 请求可能就足够了。
请记住,您不能通过 GET 请求传递任何授权标头,因此,如果您要查询相关电子邮件地址是否在您的网站上有注册帐户,任何人 将能够通过发送垃圾邮件请求找出您用户的电子邮件地址,直到他们收到 200 响应(从而验证已注册的电子邮件)。并且知道有效用户的电子邮件地址可能会在以后成为攻击媒介。
简而言之,您很可能想要POST。如果您只是在查询有关电子邮件所在域的信息,请仅使用 GET。
【讨论】:
GET 请求传递任何授权标头" - 这根本不是真的。您当然可以(以及您想要的任何其他 HTTP 标头)。您不能在 GET 请求中传递的是消息正文,因此如果您使用 GET 而不是 @987654330,则必须使用 URL 查询字符串或自定义 HTTP 标头来传递正在查询的电子邮件地址@.
嗯,POST 请求更适合从日志中隐藏 GET 参数。 您能做的最好的事情是加密正在传输的数据。您可以使用带有 SSL 加密的 POST 请求,这对于常规系统来说已经足够了。
【讨论】: