GET / POST参数是否加密?

时间:2013-07-09 22:55:06

标签: php post curl get

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

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

将考虑替代方案!

3 个答案:

答案 0 :(得分:9)

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

如果您在GET参数中放置密码,它将另外显示在地址栏中,很可能保存在浏览器历史记录,代理服务器日志中,并发送到referrer标头中的其他网站。在POST正文或标准Authorization标题中发送密码可以避免这个明显的问题,但是对于可以嗅探或代理您的流量的观察者来说仍然可以看到它。

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

如果你没有使用https,那么它在技术上是不安全的。如果有人在嗅探您的流量(例如,如果您使用公共wifi),他们就有可能看到数据。您不应该使用GET发送密码。

没有https我会说它是安全的,但它取决于许多其他因素。没有保证。