阅读 http://getpocket.com/api/docs/
通过HTTP字符串传递密码是否安全?我的理解是这不安全,即使它是HTTPS。正确的吗?
答案 0 :(得分:2)
API文档说明您正在通过HTTPS传递。实际上,HTTP Header中的GET或POST的所有信息都是SSL传输的一部分,因此URL参数也是加密的,因此您的GET参数是加密的。无法保证的是您的客户将保留的内容。或者,如果有其他进程暴露了某些信息,例如服务器对主机名进行DNS查找。另一个例子是,如果你有一个浏览器并且它保存了你输入的所有内容的历史记录,包括你的https网址,那么你可能会危及你的安全。
以下是HTTP标头,您的客户端将启动TCP连接并发送如下内容:
GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1
Host: net.tutsplus.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120
Pragma: no-cache
Cache-Control: no-cache
SSL将规定所有信息都与发回的任何信息一起加密。我会说你使用这个API是安全的,GET和POST方法之间的唯一区别是在POST中参数将在正文中,而使用GET参数在标题中。在这两种情况下,所有敏感信息都是加密的。
答案 1 :(得分:1)
我原则上同意这听起来不安全。 URL可以以纯文本(甚至通过HTTPS)存在于各种有趣的地方,例如日志。最好避免在任何地方使用明文。
您应该与API作者讨论是否存在替代策略。例如,看起来这些方法中的一些同时支持POST和GET,在这种情况下,您可能会发布POST密码详细信息,这对于HTTPS连接来说是相对安全的。