On 11/27/2010 9:00 PM, Amos Jeffries wrote:
On 28/11/10 13:34, Jason Howlett wrote:
Hello,

I have an Ubuntu 10.0.4 server running Squid 2.7stable7 (I also tried
Squid 3.0Stable19, but with the same result). I am using the default
squid.conf file with the exception of adding an acl for my local network
and allowing access for that list. If I try to go to the following URL:
http://espn.go.com/espn3/index, Squid gets stuck in some sort of
infinite loop where it tries to load that page over and over again. This
happens with both Firefox and Internet Explorer.

I dug into the html source for the espn3 page and found the following
line in the header: window.location.href = ud.redirect. If I comment out
that line then everything works correctly when I load my local copy of
the page with the browser still configured to use the proxy server. I
also found that if you set ud.redirect to something else
(www.google.com, for example), then you get redirected there. If squid
is bypassed, then everything works as expected.

I don't know exactly what is happening under the javascript hood and
what interaction with squid might be causing the infinite redirect. Any
help/suggestion is appreciated.

There is zero interaction between Squid and javascript or any other content in the page. Squid only deals with the HTTP mime headers before the content starts. This is either a javascript problem with the content coming out of ud.redirect (whatever that is I could not be bothered reading the 770KB of code in that page), or the followup response redirecting back again.

Amos
I agree that there should not be any interaction between squid and the javascript and did not mean to infer such. Squid is most certainly involved in the behavior I am seeing. If I bypass Squid or even use tinyproxy then things work as expected. I have narrowed the problem down even further and will hopefully explain better what is happening.

If I go to the following URL through Squid:

http://broadband.espn.go.com/espn3/auth/userData?format=json&page=index

I get this result:

ud={'localAdAccountId':'', 'website':'', 'dma':'', 'isLoggedIn':'false', 'state':'', 'image':'', 'sso':'false', 'affvalid':'false', 'ip':'127.0.0.1', 'username':'null', 'name':'invalid', 'redirect':'http://espn.go.com/espn3/index', 'canaddsso':'false', 'ssoabuse':'false'}

Notice that the redirect field is set to a value.

If I go to the same URL but through tinyproxy (or bypass proxy altogether) I get this response:

ud={'localAdAccountId':'null', 'website':'http://www.cox.net/', 'dma':'12', 'isLoggedIn':'false', 'state':'arizona', 'image':'cox.png', 'sso':'false', 'affvalid':'true', 'ip':'70.162.133.208', 'username':'null', 'name':'cox', 'redirect':'', 'canaddsso':'true', 'ssoabuse':'false'}

Note here that the redirect field is null. Clearly Squid is doing something that changes the result of this query, but I have no idea what that is. I thought it might be returning a cached result, but clearing and rebuilding my cache didn't help.

Again, any help or insight is appreciated.

Thanks,
Jason

Reply via email to