Implements the standard rules for accepting and returning cookies.
Both RFC 2965 and Netscape cookies are covered. RFC 2965 handling isswitched off by default.
The easiest way to provide your own policy is to override this classand call its methods in your overridden implementations before addingyour own additional checks:
import cookielibclass MyCookiePolicy(cookielib.DefaultCookiePolicy): def set_ok(self, cookie, request): if not cookielib.DefaultCookiePolicy.set_ok(self, cookie, request): return False if i_dont_want_to_store_this_cookie(cookie): return False return True
In addition to the features required to implement theCookiePolicy interface, this class allows you to block andallow domains from setting and receiving cookies. There are also somestrictness switches that allow you to tighten up the rather looseNetscape protocol rules a little bit (at the cost of blocking somebenign cookies).
A domain blacklist and whitelist is provided (both off by default).Only domains not in the blacklist and present in the whitelist (if thewhitelist is active) participate in cookie setting and returning. Usetheblocked_domains constructor argument, andblocked_domains() andset_blocked_domains() methods(and the corresponding argument and methods forallowed_domains). If you set a whitelist, you can turn it offagain by setting it toNone.
Domains in block or allow lists that do not start with a dot mustequal the cookie domain to be matched. For example,"example.com" matches a blacklist entry of"example.com", but"www.example.com" does not. Domainsthat do start with a dot are matched by more specific domains too.For example, both"www.example.com" and"www.coyote.example.com" match".example.com" (but"example.com" itself does not). IP addresses are an exception,and must match exactly. For example, if blocked_domains contains"192.168.1.2" and".168.1.2", 192.168.1.2 is blocked,but 193.168.1.2 is not.
DefaultCookiePolicy implements the following additionalmethods:
| ) |
| blocked_domains) |
| domain) |
| ) |
| allowed_domains) |
| domain) |
DefaultCookiePolicy instances have the following attributes,which are all initialised from the constructor arguments of the samename, and which may all be assigned to.
General strictness switches:
.co.uk,.gov.uk,.co.nz.etc. This is far from perfect and isn't guaranteed towork!RFC 2965 protocol strictness switches:
Netscape protocol strictness switches:
'$'.strict_ns_domain is a collection of flags. Its value isconstructed by or-ing together (for example,DomainStrictNoDots|DomainStrictNonDomain means both flags areset).
www.foo.bar.com can't set a cookie for.bar.com,becausewww.foo contains a dot).domaincookie-attribute can only be returned to a domain equal to the domainthat set the cookie (eg.spam.example.com won't be returnedcookies fromexample.com that had nodomaincookie-attribute).The following attributes are provided for convenience, and are themost useful combinations of the above flags:
DomainStrictNoDots|DomainStrictNonDomain.