Kaydet (Commit) 6ac7d7c8 authored tarafından Benjamin Peterson's avatar Benjamin Peterson

#1638033: add support for httponly on Cookie.Morsel

Reviewer: Benjamin
üst 810f807b
...@@ -148,7 +148,7 @@ Morsel Objects ...@@ -148,7 +148,7 @@ Morsel Objects
-------------- --------------
.. class:: Morsel() .. class:: Morsel
Abstract a key/value pair, which has some :rfc:`2109` attributes. Abstract a key/value pair, which has some :rfc:`2109` attributes.
...@@ -162,9 +162,17 @@ Morsel Objects ...@@ -162,9 +162,17 @@ Morsel Objects
* ``max-age`` * ``max-age``
* ``secure`` * ``secure``
* ``version`` * ``version``
* ``httponly``
The attribute :attr:`httponly` specifies that the cookie is only transfered
in HTTP requests, and is not accessible through JavaScript. This is intended
to mitigate some forms of cross-site scripting.
The keys are case-insensitive. The keys are case-insensitive.
.. versionadded:: 2.6
The :attr:`httponly` attribute was added.
.. attribute:: Morsel.value .. attribute:: Morsel.value
......
...@@ -408,6 +408,9 @@ class Morsel(dict): ...@@ -408,6 +408,9 @@ class Morsel(dict):
# For historical reasons, these attributes are also reserved: # For historical reasons, these attributes are also reserved:
# expires # expires
# #
# This is an extension from Microsoft:
# httponly
#
# This dictionary provides a mapping from the lowercase # This dictionary provides a mapping from the lowercase
# variant on the left to the appropriate traditional # variant on the left to the appropriate traditional
# formatting on the right. # formatting on the right.
...@@ -417,6 +420,7 @@ class Morsel(dict): ...@@ -417,6 +420,7 @@ class Morsel(dict):
"domain" : "Domain", "domain" : "Domain",
"max-age" : "Max-Age", "max-age" : "Max-Age",
"secure" : "secure", "secure" : "secure",
"httponly" : "httponly",
"version" : "Version", "version" : "Version",
} }
...@@ -499,6 +503,8 @@ class Morsel(dict): ...@@ -499,6 +503,8 @@ class Morsel(dict):
RA("%s=%d" % (self._reserved[K], V)) RA("%s=%d" % (self._reserved[K], V))
elif K == "secure": elif K == "secure":
RA(str(self._reserved[K])) RA(str(self._reserved[K]))
elif K == "httponly":
RA(str(self._reserved[K]))
else: else:
RA("%s=%s" % (self._reserved[K], V)) RA("%s=%s" % (self._reserved[K], V))
......
...@@ -122,6 +122,7 @@ Nicolas Chauvat ...@@ -122,6 +122,7 @@ Nicolas Chauvat
Michael Chermside Michael Chermside
Albert Chin-A-Young Albert Chin-A-Young
Adal Chiriliuc Adal Chiriliuc
Matt Chisholm
Tom Christiansen Tom Christiansen
Vadim Chugunov Vadim Chugunov
David Cinege David Cinege
......
...@@ -56,6 +56,8 @@ C-API ...@@ -56,6 +56,8 @@ C-API
Library Library
------- -------
- Issue #1638033: Cookie.Morsel gained the httponly attribute.
- Issue #3535: zipfile couldn't read some zip files larger than 2GB. - Issue #3535: zipfile couldn't read some zip files larger than 2GB.
- Issue #3776: Deprecate the bsddb package for removal in 3.0. - Issue #3776: Deprecate the bsddb package for removal in 3.0.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment