如果你使用HTTPS将你的URL参数安全的嗅探?

假设我设置了一个可以通过HTTPS访问的简单的php web服务器。 该url具有简单的参数,例如https://www.example.com/test?abc=123

在这种情况下,参数是否真的可以避免人们嗅探数据包? 如果服务器没有使用任何SSL证书,这将是真实的吗?

是的,你的url是免受嗅探的。 然而,容易被忽视的一个漏洞是,如果您的网页引用了任何第三方资源,例如Google Analytics(分析),添加内容(Add Content),则您的整个url将被发送给引荐者中的第三方。 如果它真的敏感,它不属于查询string。

至于问题的第二部分,如果服务器上没有证书,则不能使用SSL。

http://answers.google.com/answers/threadview/id/758002.html

HTTPS在传输任何HTTP数据之前build立底层SSL连接。 这确保了所有的URL数据(除用于build立连接的主机名外)仅在该encryption的连接中进行,并且以任何HTTPS数据相同的方式受到保护以免遭中间人攻击(man-in-the-middle)。

HTTPS连接中的所有HTTP级别的事务都在build立的SSL会话中进行,并且在build立安全连接之前不会传输任何查询数据。

从外部唯一可以看到的数据是它连接到的主机名和端口。 其他一切只是一个二进制数据stream,使用您和服务器之间共享的私钥进行encryption。

在你提供你的浏览器的例子中会这样做:

  1. 从URL中导出主机名(和端口如果存在)。
  2. 连接到主机。
  3. 检查证书(必须由已知权威机构“签名”,专门适用于正确的IP地址和端口,并且是最新的)。
  4. 浏览器和服务器交换密码数据,浏览器接收私钥。
  5. HTTP请求被build立,使用build立的密码进行encryption。
  6. 收到HTTP响应。 也encryption。

HTTP是一个“应用层”协议,它是在安全层之上进行的。 根据Netscape制定的SSL规范,规定在build立安全连接之前不能传输应用层数据,如下所述:

“此时,客户端发送更改密码规范消息,客户端将等待的密码规范复制到当前的密码规范中,然后客户端立即使用新的algorithm,密钥和秘密发送完成的消息。 ,服务器将发送自己的变更密码规范信息,将待处理的信息转移到当前的密码规范,并在新的密码规范下发送完成的信息。此时,握手完成,客户端和服务器可以开始交换应用程序层数据“。 http://wp.netscape.com/eng/ssl3/draft302.txt

所以是的。 包含在HTTPS连接上的URL查询中的数据是encryption的 。 然而,在'GET'请求中包含敏感数据作为密码是非常糟糕的做法。 虽然不能被拦截,但是数据将被logging在接收HTTPS服务器上的纯文本服务器日志中 ,而且很可能也会在浏览器历史logging中logging 。 它可能也可用于浏览器插件 ,甚至可能在客户端计算机上的其他应用程序。 最多可以合理地允许HTTPS URL包含会话ID或类似的不可重用variables。 它永远不应该包含静态身份validation令牌。

HTTP连接概念在这里最清楚地解释: http : //www.ourshop.com/resources/ssl_step1.html

所请求的URI(/ test?abc = 123)作为HTTP请求头的一部分发送到Web服务器,因此被encryption。

但是,URL可能会以其他方式泄漏,通常是网页浏览器工具栏,书签以及发送给朋友的链接。 根据您发送的数据的上下文/敏感度,发布数据可能更合适。

我相信一个HTTPS连接需要一个SSL证书,如果你不想购买的话,甚至是一个自己生成的SSL证书。

希望有所帮助!

取决于你的意思是安全的

SSL对整个HTTP请求/响应进行encryption,所以GET部分中的URL将被encryption。 这并不能阻止MITM攻击,也不会破坏SSL会话本身的完整性。 如果使用非授权证书,这使得潜在的攻击向量更简单。

REST请求标头是否由SSLencryption?

是一个类似的问题。

url:s将被存储在服务器日志和浏览器历史logging中,所以即使它们不可闻也不会安全。

在电线上,是的。 在终点(浏览器和服务器)不一定。 SSL / TLS是传输层安全性 。 它会encryption浏览器和服务器之间的stream量。 可以在浏览器端查看数据(例如BHO )。 一旦到达服务器端,当然对接收者是可用的,并且只有当他对待它时才是安全的。 如果数据需要安全移动超出最初的交换,并防止窥探客户端,则还应该查看消息层的安全性 。

SSL / TSL是一种传输层安全性,是的,数据可以通过BHO(如@JP写的)或任何附加信息来挑选,也可以通过“浏览器外”的HTTP嗅探器来进行。 他们读取winsock32和应用程序之间的消息。 encryption发生在winsock32不在浏览器中。

看一看(这个部分是从IEinspector的页面中提取的): IEInspector HTTP Analyzer是一个非常方便的工具,它允许您实时监控,跟踪,debugging和分析HTTP / HTTPSstream量。