views:

550

answers:

2

I'm looking at a web application with a Response.Redirect between two Https pages. I would assume normally that the query string parameters aren't visible for https requests because of the secure connection. However, since the Response.Redirect sends back the 302 - Object Moved response in between the two pages along with query string variables, I'm worried that this message is not encrypted at all.

I have looked at the data with HttpAnalyzer but I believe it unecrypts Https traffic automatically. Do I have the wrong idea about how Https requests work in general? If anyone has any advice on how to proceed with this, I'd appreciate it.

A: 

What do you mean by "visible"? To an intruder?

The host you're connecting to is visible in an unencrypted form, but not the full URL itself unless there's a man-in-the-middle attack (which requires the user to trust the attacker's certificate).

Jon Skeet
Yes, visible to an intruder who was just able to intercept the message in transit. If the intruder were listening but did not have access to the server's certificate and had not got the user to trust their own certificate in it's place. I wasn't sure if the Response.Redirect was switching back to HTTP to send the 302 response.
Sam W
The response will sent over the existing HTTPS connection; the next request will need to connect to the appropriate host, but the URL itself is part of the payload, as it were.
Jon Skeet
A: 

Although, query strings are not visible on the network with HTTPS, there are other concerns about where URLs containing query strings may be stored or transmitted:

http://blog.httpwatch.com/2009/02/20/how-secure-are-query-strings-over-https/

HttpWatchSupport