【问题标题】:Is it safe to send user email in a GET request?在 GET 请求中发送用户电子邮件是否安全?
【发布时间】:2018-07-12 00:41:00
【问题描述】:

我想从应用程序后端检索数据。我必须通过前端网站的 API 请求发送用户的电子邮件才能执行此操作。

在 GET 请求或 POST 请求中发送用户电子邮件是一种好习惯吗?更具体地说,不将用户电子邮件作为 URL 参数包含在内是否是一种好习惯,因为您不希望其他第三方看到它?

谢谢

【问题讨论】:

    标签: http security get


    【解决方案1】:

    您绝对希望使用POST 请求而不是GET 请求来查询电子邮件地址,因为GET 请求应该永远用于发送敏感信息。 p>

    考虑到这一点,您还必须首先考虑您对端点所做的工作。如果您只是请求关于电子邮件地址的公开信息(例如解析服务器名称或 IP),那么 GET 请求可能就足够了。

    请记住,您不能通过 GET 请求传递任何授权标头,因此,如果您要查询相关电子邮件地址是否在您的网站上有注册帐户,任何人 将能够通过发送垃圾邮件请求找出您用户的电子邮件地址,直到他们收到 200 响应(从而验证已注册的电子邮件)。并且知道有效用户的电子邮件地址可能会在以后成为攻击媒介。

    简而言之,您很可能想要POST。如果您只是在查询有关电子邮件所在域的信息,请仅使用 GET

    【讨论】:

    • "请记住,您不能通过 GET 请求传递任何授权标头" - 这根本不是真的。您当然可以(以及您想要的任何其他 HTTP 标头)。您不能在 GET 请求中传递的是消息正文,因此如果您使用 GET 而不是 @987654330,则必须使用 URL 查询字符串或自定义 HTTP 标头来传递正在查询的电子邮件地址@.
    【解决方案2】:

    嗯,POST 请求更适合从日志中隐藏 GET 参数。 您能做的最好的事情是加密正在传输的数据。您可以使用带有 SSL 加密的 POST 请求,这对于常规系统来说已经足够了。

    【讨论】:

      猜你喜欢
      • 2014-07-03
      • 2023-01-13
      • 1970-01-01
      • 2011-02-04
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      相关资源
      最近更新 更多