зеркало из https://github.com/mozilla/gecko-dev.git
Fixes for bug 53580. No longer sending user/passwd in referrers. r=mscott, sr=scc.
This commit is contained in:
Родитель
c2ed87c0df
Коммит
fe4616394d
|
@ -62,13 +62,13 @@ nsAuthEngine::Logout()
|
|||
|
||||
count = mAuthList.Count();
|
||||
for (i=0; i<count; ++i)
|
||||
delete mAuthList[i];
|
||||
delete NS_STATIC_CAST(nsAuth*, mAuthList[i]);
|
||||
mAuthList.Clear();
|
||||
mAuthList.Compact();
|
||||
|
||||
count = mProxyAuthList.Count();
|
||||
for (i=0; i<count; ++i)
|
||||
delete mProxyAuthList[i];
|
||||
delete NS_STATIC_CAST(nsAuth*, mProxyAuthList[i]);
|
||||
mProxyAuthList.Clear();
|
||||
mProxyAuthList.Compact();
|
||||
|
||||
|
|
|
@ -2746,9 +2746,21 @@ nsHTTPChannel::SetReferrer(nsIURI *referrer, PRUint32 referrerLevel)
|
|||
referrer->GetSpec(getter_Copies(spec));
|
||||
if (spec && (referrerLevel <= mHandler->ReferrerLevel()))
|
||||
{
|
||||
nsCAutoString ref(spec.get());
|
||||
nsXPIDLCString prehost;
|
||||
referrer->GetPreHost(getter_Copies(prehost));
|
||||
if (prehost.get())
|
||||
{
|
||||
// 8 = 7 for http:// + 1 for @
|
||||
NS_ASSERTION(7 == ref.Find(prehost.get(), PR_TRUE), "bad url!");
|
||||
PRInt32 remainingStart = 8 + PL_strlen(prehost.get());
|
||||
ref = Substring(ref, 0, 7) +
|
||||
Substring(ref, remainingStart, ref.Length()-remainingStart);
|
||||
}
|
||||
|
||||
if ((referrerLevel == nsIHTTPChannel::REFERRER_NON_HTTP) ||
|
||||
(0 == PL_strncasecmp((const char*)spec, "http",4)))
|
||||
return SetRequestHeader(nsHTTPAtoms::Referer, spec);
|
||||
(0 == PL_strncasecmp(ref.GetBuffer(), "http",4)))
|
||||
return SetRequestHeader(nsHTTPAtoms::Referer, ref.GetBuffer());
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче