JavaScript操作Cookie:Cookie高級用法

3281 ワード

前二篇ではCookieの概念Cookieの基礎的な使い方を紹介しましたが、本記事では主にCookieの高級な使い方について紹介しています.
cookie経路概念
基本的な知識では、cookieにはドメインとパスがあるという概念がありますが、ここでは、cookieにおける経路の役割を紹介します.
クッキーは一般にユーザーがページにアクセスすることによって作成されるが、クッキーを作成するページだけがこのクッキーにアクセスできるわけではない.
デフォルトでは、クッキーを作成するページと同じディレクトリまたはサブディレクトリの下のウェブページだけがアクセスできます.これは、セキュリティ上の配慮により、すべてのページが他のページで作成されたクッキーに自由にアクセスできなくなります.例を挙げます
はい、  http://www.qeefee.com/Javascript このページでクッキーを作成すると、http://www.qeefee.com/js/javascript-operate-cookie-1の「このページはデフォルトでクッキー情報を取得できます.
デフォルトでは、http://www.qeefee.com または  http://www.qeefee.com/orchard  このクッキーには訪問できません.
このクッキーを他のディレクトリや親レベルのディレクトリにアクセスできるようにするには、クッキーのパスを設定することで実現できます.例は以下の通りです.
document.cookie = "name=value;path=path"
document.cookie = "name=value;expires=date;path=path"
最も一般的な例は、クッキーをディレクトリの下に置くことです.どのサブページで作成されたクッキーであれ、すべてのページがアクセスできます.
document.cookie = "name=Darren;path=/"
cooki eドメイン概念
パスは同じドメインでcookieにアクセスする問題を解決できます.cookieが同ドメイン間のアクセスを実現するという問題を続けて説明します.文法は以下の通りです.
document.cookie = "name=value;path=path;domain=domain"
例えば、「www.qq.com」と「sports.q.com」は一つの関連ドメイン名である「q.com」を共有したいならば、「sports.qq.com」の下のクッキーを「www.qcom」にアクセスしたいなら、cookieのdomail属性を使用して、path属性を「/」に設定する必要があります.
document.cookie = "username=Darren;path=/;domain=qq.com"
注:一定のドメイン間のアクセスは、domainの値を非プライマリドメインのドメイン名に設定することはできません.
クッキーの安全性
通常、クッキー情報はHTTP接続を使ってデータを転送するものであり、このような伝達方式は簡単に確認されるので、クッキーに格納されている情報は盗撮されやすい.クッキーに伝達されている内容が重要であれば、暗号化されたデータ伝送を使用することが要求される.
したがって、cookieのこの属性の名称は「secure」であり、デフォルトの値は空です.クッキーの属性がsecureであれば、サーバとの間でHTTPSまたは他のセキュリティプロトコルを通じてデータを転送します.文法は以下の通りです.
document.cookie = "username=Darren;secure"
cookieをsecureに設定し、cookieとサーバ間のデータ転送プロセスだけが暗号化され、ローカルに保存されているクッキーファイルは暗号化されていません.ローカルクッキーも暗号化したいなら、自分でデータを暗号化します.
注:secure属性が設定されていても、他の人があなたのマシンのローカルに保存されているクッキー情報を見ることができないわけではないので、あくまでも重要な情報をクッキーに入れないようにしてください.
cookieコードの詳細
もともとはよくある問題の中でcookieコードの知識を紹介したいですが、これについてよく知らないと符号化問題は確かに一つの穴ですので、詳しく話してください.
cookie情報の入力にはスペース、セミコロン、コンマなどの特殊記号は含まれませんが、一般的にはcookie情報の格納は符号化されていません.したがって、cookie情報を設定する前に、まずescape()関数を使ってクッキー値情報を符号化し、クッキー値を取得する際にはunescape()を使用します.関数が値を変換します.クッキーを設定する場合:
document.cookie = name + "=" + escape(value)
基本的な使い方の時に言及したget Cookie()の中の一言を見てください.
return unescape(document.cookie.substring(c_start,c_end))
このように、クッキー値に特殊なシンボルが現れたため、クッキー情報がエラーする心配はありません.