CookieモジュールはHTTPの状態管理機能であるcookieの概念を抽象
化、定義しているクラスです。単純な文字列のみで構成されるcookieのほか、
シリアル化可能なあらゆるデータ型でクッキーの値を保持するための機能も備
えています。
このモジュールは元々RFC 2109とRFC 2068に定義されている構文解析の規
則を厳密に守っていました。しかし、MSIE 3.0xがこれらのRFCで定義された文
字の規則に従っていないことが判明したため、結局、やや厳密さを欠く構文
解析規則にせざるを得ませんでした。
- exception CookieError
-
属性やヘッダが正しくないなど、RFC 2109に合致してい
ないときに発生する例外です。
-
このクラスはキーが文字列、値がMorselインスタンスで構成される辞書風オブジェ
クトです。値に対するキーを設定するときは、値がキーと値を含む
Morselに変換されることに注意してください。
inputが与えられたときは、そのままload()メソッドへ渡され
ます。
クラス SimpleCookie( |
[input]) |
-
このクラスはBaseCookieの派生クラスで、value_decode()
は与えられた値の正当性を確認するように、value_encode()は
str()で文字列化するようにそれぞれオーバライドします。
クラス SerialCookie( |
[input]) |
-
このクラスはBaseCookieの派生クラスで、value_decode()
とvalue_encode()をそれぞれpickle.loads()と
pickle.dumps()を実行するようにオーバーライドします。
リリース 2.3 で撤廃されました。
このクラスを使ってはいけません! 信頼できないcookieのデータか
ら pickle 化された値を読み込むことは、あなたのサーバ上で任意のコードを
実行するために pickle 化した文字列の作成が可能であることを意味し、重大
なセキュリティホールとなります。
クラス SmartCookie( |
[input]) |
-
このクラスはBaseCookieの派生クラスで、value_decode()
を、値が pickle 化されたデータとして正当なときは
pickle.loads()を実行、そうでないときはその値自体を返すよう
にオーバーライドします。またvalue_encode()を、値が文字列以外
のときはpickle.dumps()を実行、文字列のときはその値自体を返
すようにオーバーライドします。
リリース 2.3 で撤廃されました。
SerialCookieと同じセキュリティ上の注意が当ては
まります。
関連して、さらなるセキュリティ上の注意があります。後方互換性のため、
CookieモジュールはCookieというクラス名を
SmartCookieのエイリアスとしてエクスポートしています。これはほ
ぼ確実に誤った措置であり、将来のバージョンでは削除することが適当と思わ
れます。アプリケーションにおいてSerialCookieクラスを使うべきで
ないのと同じ理由でCookieクラスを使うべきではありません。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。