【问题标题】:Are GET / POST params encrypted?GET / POST 参数是否加密?
【发布时间】:2013-07-09 22:55:05
【问题描述】:

在 POST 或 GET 请求中将密码/用户名传递到外部服务器有多安全?

我将使用 PHP / CURL,并且我对安全性有第二个要求。

也会考虑替代品!

【问题讨论】:

  • 您使用的是 HTTP 还是 HTTPS?
  • GET 请求未加密,切勿通过 GET 参数发送密码。
  • @c69 有什么替代方案?
  • 安装ssl证书,使用https,问题解决
  • 使用 SSL 和 POST。获取请求可能会显示在服务器日志中,也可能会保存在浏览器历史记录中。

标签: php post curl get


【解决方案1】:

如果您使用没有 SSL 加密的 HTTP,则所有内容都以明文形式传输,包括完整的 URL、HTTP 请求/响应标头以及 POST 请求和响应的正文。

如果您在 GET 参数中输入密码,它还会显示在地址栏中,并且很可能会保存在浏览器历史记录、代理服务器日志中,并在引荐来源标题中发送到其他网站。在 POST 正文或标准 Authorization 标头中发送密码可以避免这个明显的问题,但可以嗅探或代理您的流量的观察者仍然可以看到它。

Digest Authentication 避免以明文形式传输密码,只向外部观察者公开不可重复使用的签名。它仍然容易受到中间人攻击;见HTTP Digest Authentication versus SSL

正确的解决方案是使用 SSL 证书并专门使用 HTTPS。当您这样做时,URL 字符串、HTTP 标头和 POST 正文都将被加密,并且浏览器会验证中间没有第三方在操作服务器。在这种情况下允许使用 HTTP 基本身份验证。

【讨论】:

    【解决方案2】:

    他们自己,不一定。除了查询之外,您不应该将 GET 用于其他事情,因为它们可以存储在用户的浏览器中。 POST 使用库加密相对容易,因为您不应该实现自己的加密。

    另外,如果您获得 SSL,那将有所帮助。如果您使用 HTTPS(而不是 HTTP),那么它会更加安全。

    您没有详细说明页面是什么(阅读:语言),所以我真的不能推荐一个好的加密库,但只要谷歌它,我相信你会找到一些东西。

    【讨论】:

    • GET 更糟。它会被搜索引擎抓取:)
    猜你喜欢
    • 2012-04-09
    • 2018-01-11
    • 2011-01-08
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2011-10-19
    相关资源
    最近更新 更多