Weaning The Web Off of Session Cookies
Weaning The Web Off of Session Cookies
Version 1.0
Timothy D. Morgan
January 26, 2010
Contents
Abstract............................................................................................................................................................1
Introduction.....................................................................................................................................................1
Cookie-based Session Management.............................................................................................................1
HTTP Digest Authentication........................................................................................................................2
RFC 2069 Mode.................................................................................................................................................................................2
auth Mode...........................................................................................................................................................................................2
auth-int Mode.....................................................................................................................................................................................3
Comparison.....................................................................................................................................................3
Pitfalls of Cookie-based Sessions...................................................................................................................................................3
Limitations of Digest Authentication............................................................................................................................................5
Comparison Summary......................................................................................................................................................................6
Possible Solutions............................................................................................................................................8
Form-based HTTP Authentication................................................................................................................................................8
Approaches for Logout....................................................................................................................................................................9
Practical Concerns........................................................................................................................................11
Immature Digest Implementations..............................................................................................................................................11
Weak User Interfaces for HTTP Authentication.....................................................................................................................11
Application Server Support..........................................................................................................................................................13
Conclusion.....................................................................................................................................................14
Acknowledgements......................................................................................................................................14
References......................................................................................................................................................15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
Abstract
In this paper, we compare the security weaknesses and usability limitations of both cookiebased session manage
ment and HTTP digest authentication; demonstrating how digest authentication is clearly the more secure system in
practice. We propose several small changes in browser behavior and HTTP standards that will make HTTP authenti
cation schemes, such as digest authentication, a viable option in future application development.
Introduction
Early in the history of the world wide web, a transition occurred where web sites began to switch from largely static
HTML content to complex, dynamic applications. At the time, authentication of users to an application was
supported through HTTP basic authentication, which has very limited flexibility and no security features. As appli
cations progressed and became more dynamic, so did the requirements for user authentication and password
management. In response to these forces a relatively new technology, browser cookies, quickly took over as the
primary mechanism for tracking application login sessions. Unfortunately, cookies were not originally designed for
authentication purposes and cookie standards are both poorly specified and adhered to. For these reasons, the past
several years have proven time and again that this approach is riddled with security pitfalls which continue to plague
developers and users.
HTTP digest authentication was originally introduced at the same time as HTTP 1.1 and provides marginally more
security than the HTTP basic authentication scheme. Even with its limited additional security, we find that it
continues to outperform most cookiebased session management frameworks in the protections it provides.
However, digest authentication continues to be largely ignored by application developers since it suffers from the
same user interface limitations of basic authentication, preventing developers from controling portions of the end
user experience.
In this paper, we compare the security weaknesses and usability limitations of cookiebased sessions and HTTP
digest authentication. In addition, we propose various possible changes in browser behavior and HTTP standards
that should make HTTP authentication schemes a viable option in future application development. Note that we do
not compare these session management schemes with HTTP basic authentication or SSL/TLS certificatebased
authentication for the sake of brevity, as we believe that HTTP basic authentication is clearly a weaker system and
that client certificates are clearly stronger from a security perspective.
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
1 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
auth Mode
RFC 2617 introduced revisions to digest authentication that allow for improved efficiency and authentication of
servers. When servers advertise the auth or auth-int quality of protection modes, clients should select one of
these (as opposed to the RFC 2069 mode) and some additional information is sent along to the server (and protected
by cryptographic hashes):
■ Nonce count
■ Client nonce
The nonce count value is intended to provide an efficient way to mitigate replay attacks against the same server
without having to refresh the server nonce. The client nonce is designed to allow clients to authenticate server iden
tity by ensuring that servers know the user's password digest (proven in a later response header).
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
2 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
auth-int Mode
The auth-int mode is very similar to the auth mode, except that it requires the request's body hash be included.
This is simply a more explicit version of the optional request body digest mode described in RFC 2069.
Comparison
First we list the individual weaknesses of each session management system and then follow with a summary of the
differences. Note that throughout this comparison, we assume secure applications will utilize SSL/TLS with a prop
erly authenticated server certificate, since without this, both systems would be insecure in the underlying network
stack.
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
3 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
Session Fixation
Since many applications rely on session cookies for purposes other than authentication, application frameworks
commonly set session cookies when users first visit a site. Later, when a user authenticates, the user's session is typi
cally "upgraded" to an authenticated state on the server, allowing the user to access restricted areas. However, this
sequence of events appears to backward in comparison with typical cryptographic protocols that utilize session keys.
That is, session identifiers should be set only after authenticating to the system.
The vulnerability of this behavior was pointed out by Mitja Kolšek in [SFIX] where a few attack scenarios were
described. In one example, an attacker walks up to a public terminal and accesses a popular web application, which
assigns her a cookie. She records the cookie and walks away. Later, a victim uses the same terminal to access the
same website. Once the victim is logged in, the attacker can use the previously recorded session identifier to hijack
the victim's account.
More serious attacks are possible if the web application permits users to specify their own session identifiers. For
example, if a new session is created and associated with the specified value upon accessing a URL like the following,
then additional attack vectors become available:
https://example.com/index.cgi?SessionID=12345678
It may seem surprising that any web application would allow this, but the issue has surfaced even recently in popular
applications [SFOS,SFRT,SFTIM]. In this situation, if an attacker could convince a victim to follow a malicious link to
the site and subsequently log in, then hijacking the session becomes trivial.
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
4 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
5 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
businesses demand) a way to provide users with a custom HTML login page for a userfriendly experience. HTTP
authentication methods are, however, based on received HTTP response types and headers instead of HTML forms
which makes them difficult to customize. This is a primary reason why few enduser applications rely on any form of
HTTP authentication.
This hashing format is reasonably secure against precomputation attacks, provided that USERNAMEs and REALMs are
not commonly reused. However, if additional digest authentication hash algorithms are introduced in the future
(such as SHA256 or Whirlpool), then all user passwords would need to be reset to support the newer hash format.
Comparison Summary
HTTP digest authentication lacks many of the security weaknesses of commonly used cookiebased session manage
ment. Since the cryptographic negotiation is standardized there is less room for cryptographic weaknesses. For
instance, even if both a server and client were to select predictable nonces, the response hashes would be at best
vulnerable to replay attacks, but would not be predictable outright. In addition, since the protocol is standardized
and not used for tracking users, there is no risk of leakage through URLs, as session identifiers sometimes are.
Session fixation is also not an issue with digest authentication, since the very first request tied to a session is authenti
cated. The potential weakness created by the lack of a secure flag with session cookies is unlikely to occur in digest
authentication unless application developers or web administrators go out of their way to add a nonHTTPS URL to
the protection space advertised by the server.
The need to add the HttpOnly flag to cookies is also irrelevant with digest authentication, since browsers do not
provide access to these headers in clientside scripts without additional weaknesses (such as the TRACE or TRACK
methods being enabled). Even if a digest authentication header were hijacked through some means, it would likely
not be usable to hijack a user session directly, since nonce counts would change and server nonces themselves may
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
6 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
change periodically. This is a significant advantage over session cookies.
Digest authentication also provides a form of builtin single signon by allowing a server to specify other servers in
the same protection space. The servers in this space would not need to coordinate any session information on the
backend, but would merely need to share the user's A1 hash. Additionally, private session information could be
communicated between servers through encrypted nonces and "opaque" data which would be forwarded by clients
automatically.
Additional security features of digest authentication include some level of integrity protection in light of limited
injection attacks (such as TLS renegotiation and HTTP request smuggling [HDI]) and optional mutual authentication.
However, some of these features are highly implementation dependent.
It is worth noting that digest authentication does currently rely on the MD5 hash algorithm which has been widely
demonstrated to be flawed for certain cryptographic properties. However, the primary property digest authentica
tion relies on is preimage resistance. For instance, so long as the legacy RFC 2069 mode is avoided, clients will
provide a nonce as a part of the response hash which should make chosen plaintext attacks difficult for malicious
servers. In addition, digest authentication does leave open the possibility of other hash algorithms to be added in the
future.
The most serious security weakness of digest authentication, when compared to standard cookiebased session
management, is that weak user passwords could be cracked if authorization headers were ever obtained by an
attacker. However, given the fact that these headers are much less likely to be stolen (when compared to cookies) and
cannot be reused to hijack sessions immediately, this seems like a good tradeoff. To mitigate this problem, users
should be required to select complex passwords, which is considered a security best practice anyway.
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
7 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
Possible Solutions
The reason digest authentication hasn't caught on has little to do with the security of the protocol. The primary
reason is the lack of a flexible user interface. If this barrier to entry could be removed, it should be much easier to
convince application developers and administrators of its security virtues.
if(XHR.status == "200")
redirect("/private/landing.cgi")
else
reportError("Login Failed")
Here we assume that the page contains an HTML form with standard username and password fields. Upon submit
ting the form, JavaScript executes the routine listed above. The username and password are supplied to the browser's
XMLHttpRequest open method, which means the browser can use them for basic, digest, or any other supported
authentication method. If the login was successful, the AJAX request will see a 200 status code returned in HTTP
headers and JavaScript can then redirect the user to a landing page. If the login fails, the script will (in theory) report
a custom error to the user.
Unfortunately, this approach doesn't quite work without a small adjustment. Upon receiving a 401 error code from
the server, even in response to an AJAX request, the majority of popular browsers will immediately prompt users for
their credentials with the default popup. Therefore, if users fail to type the correct password the first time, the rest of
the authentication process is taken out of the web developer's hands. To work around this problem, site developers
could design the /private/login-check.cgi script to return a different kind of error code (perhaps a different
400 code) which would be ignored by the browser and could allow continued processing in JavaScript.
This work around skirts the HTTP specification and is not particularly convenient, but fortunately there may be hope
for a correction to this browser behavior. The recent W3C working draft [XHR] for the XMLHttpRequest standard
ization effort contains the following:
If authentication fails, and request username and request password are provided,
user agents must not prompt the end user for credentials. [RFC2617]
NOTE: End users are not prompted if credentials are provided through the open() API
so that authors can implement their own user interface.
It seems someone in the standards community has already recognized this shortcoming. Assuming this browser
behavior is changed, implementation of custom login forms for any HTTP authentication method can be made quite
simple. In fact, login forms could be entirely static (that is, with no dynamic serverside scripts required) and if some
browsers do not fully support the JavaScript mechanisms driving the form, a link can be provided to the authenti
cated area where the traditional HTTP authentication prompt would be triggered.
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
8 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
Here, the auth_scheme is the type of HTTP authentication (basic, digest, etc) and the realm is the realm advertised
in the WWW-Authenticate header presented in the initial login and again during log outs. The site is a same
origin designation which may vary from one authentication scheme to the next, but is typically just the website that
originally prompted the user for credentials (and is now concluding the login session). This sameorigin designation
would be somewhat more complex in single signon scenarios with digest authentication, but current 401 response
credential clearing rules could be used.
There is nothing in the HTTP specification to prevent this more intelligent 401 response processing behavior. By
displaying the body of a 401 page during the log out, application developers can fully control the logout landing page
and provide links to public areas or back to the login page. This seems to be the simplest way to achieve a log out, as
no JavaScript hacks or additional standards need to be defined.
However, it may be that any given browser vendor is afraid to change 401 response handling because so many other
browsers already behave this way, or because application developers are accustomed to it. In order to nudge browser
vendors in the right direction, it may be necessary to make a small change to HTTP authentication standards. One
approach would be to add a new HTTP header, Authentication-Control. This header would be optionally
included in 2XX and possibly 3XX responses to trigger changes in authentication state with a client. We propose the
header be generalized and flexible to allow future (potentially very sophisticated) authentication protocols to utilize
it. The basic grammar might look like:
AuthenticationControl = "Authentication-Control" ":" auth-info
auth-info = auth-scheme 1*SP realm "," #(auth-param)
realm = "realm" "=" quoted-string
auth-param = token "=" ( token | quoted-string )
Here, we simply require the authentication scheme and the realm. Any additional namevalue pairs would be
schemespecific. For instance, if a future authentication scheme wished to define a namevalue pair to change a cryp
tographic key for an existing session, it could easily do so in any response.
For our purposes, we want the ability to terminate digest authentication sessions. Using this new header a response
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
9 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
for a log out request might look like:
HTTP/1.1 200 OK
Date: Thu, 15 Jan 2010 00:00:00 GMT
Authentication-Control: Digest realm="My Auth Realm", terminate="true"
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 125
<html><body>
<h1>You've Been Logged Out</h1>
<a href="http://example.com/login">Click Here To Log Back In</a>
</body></html>
Note that if a header like this were introduced in a new RFC, legacy browsers would simply ignore it. To manage the
transition period, a log out response page could include JavaScript workarounds for major browsers to accomplish
the same goal.
While the addition of an HTTP header might seem overkill given how browsers could address this specific issue with
no standards change, the suggested HTTP header has the potential benefit of added flexibility for all HTTP authenti
cation schemes.
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
10 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
Practical Concerns
Immature Digest Implementations
While the lack of flexible HTTP authentication logins and logouts is the primary hurdle for adoption of digest
authentication, other issues exist in common implementations of the protocol itself. For example, according to
[AMAD] Internet Explorer versions 5 and 6 fail to include the URI's query string in the digest hash, which creates
incompatibilities and limits the efficacy of URI integrity protection. Apache's HTTP server (mod_auth_digest) and
Tomcat have still not implemented several important security features including the MD5-sess algorithm, nonce
count checking, and auth-int support [AMAD,ATRB]. Mozilla's Firefox and Google Chrome do not appear to
support auth-int (as of this writing) [FFDA,HAHD].
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
11 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
In both of these examples, the realm was "URL https://secure.example.com/", which is designed to hopefully
confuse users into thinking that was the site they were authenticating to.
Firefox 3.5.6 under Linux did a slightly better job of differentiating the realm by enclosing it in quotes ("), but this
could still be confusing:
In this case, the malicious realm was approximately the following (with a large number of trailing tab characters):
Welcome\". Please enter your username and password to access the site:
https://secure.example.com
Safari 4.0.4 under Windows also attempts to differentiate the realm from the site, but it would likely still be easy to
confuse many users:
Opera 10.10 under Linux did much better at making these fields clearly separate by highlighting the domain next to a
label:
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
1 2 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
In summary, we recommend that browsers implement the following controls in relation to HTTP authentication:
■ Clearly separate the domain and realm in the authentication dialog.
■ If an HTTP authentication scheme is being used which is considered insecure and SSL/TLS is not in use,
include a clear warning message in the dialog.
■ Consider adding a special warning to the dialog if it is for a crossdomain request.
■ Provide a button or similar construct which launches a secondary window fully describing the type of
authentication the server is requesting, including:
□ Authentication scheme chosen by the browser
□ Secondary authentication schemes offered by the server (a single 401 response may advertise multiple)
□ Listing of full URLs protected (digest authentication may have multiple)
□ Realm
□ Information on SSL/TLS, if applicable (perhaps in separate dialog)
■ Add dialogs in the browser settings area to show users which temporary credentials are currently in use,
what authentication schemes they utilize, and perhaps even a short history of when the credentials have
been used in the past.
■ Provide a way to disable specific authentication schemes on a persite basis.
□ If given site advertises the digest scheme (or a more secure scheme), then basic authentication should be
automatically disabled for that site in the future (with user intervention possible).
□ Eventually, basic authentication should be disabled for all sites by default with an exception mechanism
added for backward compatibility.
■ Password managers must differentiate between different authentication schemes, disallowing use of pass
words for less secure schemes.
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
13 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
Conclusion
We have shown in this paper how cookiebased session management systems are highly fragile. One might argue
that the easiest way forward is to standardize cookiebased session management in a secure way. However, as one
looks at the cryptography involved in implementing secure password protocols, complex clientside logic would be
required. This is not the kind of logic which could be easily (or safely) implemented in JavaScript. One could add
standardized JavaScript features to browsers which hand off these complex interactions in new cookiebased proto
cols, but this would be an exercise in reinventing the wheel. Besides digest authentication, several other HTTP
authentication schemes exist or are in the development process [MAPH,RFC4169,RFC4559]. For this reason, we think
a much better approach would be to make HTTP authentication schemes widely usable now and in the future. Since
digest authentication is already widely implemented and provides security benefits over the status quo, we believe it
is a great first step.
Acknowledgements
Thanks go to the following for providing helpful suggestions: Jan Algermissen, George D. Gal, Dan Kaminsky, Jason
Morgan, Joan Morgan, and Yutaka Oiwa.
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
14 / 15
W E A N I N G T H E W E B O F F O F S E S S I O N C O O K I E S : M A K I N G D I G E S T A U T H E N T I C AT I O N V I A B L E VERSION 1.0 / J A N U A RY 2 6 , 2 0 1 0
References
AMAD Apache Module mod_auth_digest
http://httpd.apache.org/docs/2.2/mod/mod_auth_digest.html
ATRB Apache Tomcat Subversion Respository: RealmBase.java
http://svn.apache.org/repos/asf/tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java
BSHHA Browser Security Handbook: HTTP Authentication
http://code.google.com/p/browsersec/wiki/Part3#HTTP_authentication
BSHSOC Browser Security Handbook: Same-Origin Policy for Cookies
http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_cookies
CACC ClearAuthenticationCache Command
http://msdn.microsoft.com/en-us/library/ms536979%28VS.85%29.aspx
CACS Cookieless Authentication – Client side
http://www.nanodocumet.com/?p=6
FFDA Mozilla Cross Reference: nsHttpDigestAuth.cpp
http://mxr.mozilla.org/seamonkey/source/netwerk/protocol/http/src/nsHttpDigestAuth.cpp
HAHD http_auth_handler_digest.cc (Google Chrome)
http://src.chromium.org/viewvc/chrome/trunk/src/net/http/http_auth_handler_digest.cc?
revision=26723&view=markup
HAHF HTTP Authentication with HTML Forms
http://www.peej.co.uk/articles/http-auth-with-html-forms.html
HDI HTTP Digest Integrity: Another Look, in Light of Recent Attacks
http://www.vsecurity.com/download/papers/HTTPDigestIntegrity.pdf
HOBS HTTPOnly: Browsers Supporting HTTPOnly
http://www.owasp.org/index.php/HTTPOnly#Browsers_Supporting_HTTPOnly
MAPH Mutual Authentication Protocol for HTTP
https://www.rcis.aist.go.jp/special/MutualAuth/
PHPWN phpwn: Attack on PHP sessions and random numbers
http://samy.pl/phpwn/
PLP REST Based Authentication: Personalised login page
http://www.berenddeboer.net/rest/authentication.html#login-page
RFC2069 An Extension to HTTP : Digest Access Authentication
http://www.ietf.org/rfc/rfc2069.txt
RFC2617 HTTP Authentication: Basic and Digest Access Authentication
http://www.ietf.org/rfc/rfc2617.txt
RFC4169 Hypertext Transfer Protocol (HTTP) Digest Authentication Using Authentication and Key Agreement
(AKA) Version-2
http://www.ietf.org/rfc/rfc4169.txt
RFC4559 SPNEGO-based Kerberos and NTLM HTTP Authentication in Microsoft Windows
http://www.ietf.org/rfc/rfc4559.txt
SBHA HTTP Authentication
https://wiki.slugbug.org.uk/HTTP_Authentication
SFIX Session Fixation Vulnerability in Web-based Applications
http://www.acros.si/papers/session_fixation.pdf
SFOS osCommerce 'oscid' Session Fixation Vulnerability
http://www.securityfocus.com/bid/34348
SFRT RT Session Fixation Vulnerability
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3585
SFTIM IBM Tivoli Identity Manager Session Fixation Vulnerability
http://www.securityfocus.com/bid/35779
XHR XMLHttpRequest: W3C Working Draft 19 November 2009
http://www.w3.org/TR/XMLHttpRequest/#the-send-method
C O P Y R I G H T © 2 0 1 0 V I RT U A L S E C U R I T Y R E S E A R C H , L L C
A L L R I G H T S R E S E RV E D .
15 / 15