ホームページ >ウェブフロントエンド >jsチュートリアル >セッションとクッキーの違いと使い方を理解する(画像とテキストのチュートリアル)

セッションとクッキーの違いと使い方を理解する(画像とテキストのチュートリアル)

亚连
亚连オリジナル
2018-05-19 09:45:533713ブラウズ

この記事では、セッションとクッキーの動作原理、違いと使用法、使用時の利点と欠点を主に紹介します。違いと原理をリストすることで、必要な友人がこの2つの関係をよりよく理解できるようになります。それ

Cookie の概念

特定の Web サイトを閲覧すると、これらの Web サイトは、Web サイトを使用するユーザーを追跡し、ユーザー定義の機能を実装するために使用されるデータをクライアントに保存します。

有効期限を設定するかどうか。時間:有効期限が切れている場合は、有効期限が設定されていない場合、ブラウザは閉じて再開しますブラウザでは、これらの Cookie は、設定された有効期限が経過するまで有効です。 ハード ドライブに保存された Cookie は、2 つの IE ウィンドウなど、異なるブラウザ プロセス間で共有できます。メモリに保存される Cookie は、ブラウザごとに処理方法が異なります。


原則:

ブラウザが Cookie を使用する場合、すべてのデータはブラウザ側に保存されます。 たとえば、ログイン後、サーバーは Cookie のユーザー名 (ユーザー名) を設定し、その後サーバーに再度リクエストすると、の場合、ブラウザはユーザー名を一緒にサーバーに送信し、これらの変数には特定の特別なタグが付けられます。
サーバーはそれを Cookie 変数として解釈します。
したがって、ブラウザが閉じられていない限り、Cookie 変数は常に有効になるため、長時間切断されないことが保証されます。
ユーザーの Cookie 変数を傍受し、データ パケットを偽造して送信できる場合でも、サーバーはユーザーが正当であると認識します。そのため、Cookieを利用した攻撃を受ける可能性が比較的高いと言えます。
有効期限が設定されている場合、次回 Web サイトにアクセスするときに、ブラウザは最初に Cookie があるかどうかを確認し、Cookie があれば送信します。それをサーバーに送信します。

あなたのマシンにフォーラム Cookie を保存した場合、有効期間は 1 年間です。誰かがあなたのマシンに侵入し、あなたの Cookie をコピーし、ブラウザのディレクトリに置いた場合、その人物は Web サイトにログインするときに次のようにログインします。あなたのアイデンティティ。

つまり、クッキーは偽造できるのです。 もちろん、偽造する際にはいくつかのアイデアが必要です。Cookie ファイルを Cookie ディレクトリに直接コピーすると、ブラウザはそれを認識しません。 それには、Cookie ファイルの作成時刻と、Cookie ファイルが作成されたかどうかを保存する、index.dat ファイルがあります。変更されているため、最初に Web サイトの Cookie ファイルを用意する必要があり、保証時間に関してブラウザを欺く必要があります

私はかつて学校の VBB フォーラムで実験を行い、他の人の Cookie をコピーしてログインしました。 、他人の名前で投稿しても全く問題ありませんでした。



Cookieの使用法:



  setcookie("user","zy",time()+3600); 设置user为zy,一小时之后失效;
  $_COOKIE['user'];     取回user值(名字)
  setcookie("user","",time()-3600); 删除cookie,第二个参数为空,第三个时间设置为小于系统的当前时间即可.




またはブラウザの設定で

Cookieを使用すると、Cookieはテキストファイルを自動的に生成し、IEブラウザの一時Cookieフォルダに保存します。ブラウザによって削除される Cookie ファイルの具体的な操作手順は、 & gt; IE ブラウザでツール/インターネット オプション コマンドを選択し、[インターネット オプション] ダイアログ ボックスを開き、

& gt; 従来のオプションで [Cookie を削除] ボタンをクリックします。カードを選択し、ポップアップ ダイアログ ボックスをクリックして [OK] ボタンをクリックすると、すべての Cookie ファイルが正常に削除されます。ユーザーデータを保存するためにサーバー側に保存されます (Web 開発テクノロジーごとに実装が異なる場合があるため、HashTable の直下で呼び出されます)。

関数:

サーバー側に保存されるオブジェクトのコレクションです。 Webページ間のデータ転送を実現します。

原則:


ユーザーが Asp.net ページをリクエストすると、システムはアプリケーションを終了するかサーバーを閉じるとセッションを自動的に作成します。システムはセッションを作成するときに、セッションを管理および追跡するために長い文字列の識別子を割り当てます。
セッション メカニズムはサーバー側のメカニズムであり、サーバーは情報を保存するためにハッシュ テーブルに似た構造を使用します (またはハッシュ テーブルを使用する場合もあります)。 保存:

これはサーバーセグメントのメモリプロセスに保存されており、このプロセスは非常に不安定で、再起動するとセッションが無効になり、ユーザーエクスペリエンスが非常に悪くなります。ユーザーが情報を入力しています。プログラムが終了しようとすると、セッションが期限切れになり、ログイン ページに直接ジャンプします。

セッションが作成されているかどうか:

プログラムがセッションを作成する必要がある場合。クライアントのリクエストがあった場合、サーバーはまずクライアントのリクエストが含まれているかどうかを確認します セッション識別子 (セッション ID と呼ばれます)

が含まれている場合、以前にこのクライアントに対してセッションが作成されたことを意味し、サーバーはこのセッションを取得しますセッションIDに従って....このセッションでは、

セッション ID の値は、重複または一意ではない値である必要があります。パターンを見つけて偽造しやすい文字列です。このセッション ID は、保存のためにこの応答でクライアントに返されます。

(概要: セッションを作成するとき、サーバーはクライアントにセッション ID が含まれているかどうかを確認します。含まれている場合は、セッション ID に従ってセッションを取得します。そうでない場合は、新しいセッションを作成する必要があります。)

クライアント実装フォームセッションの保存方法 (つまり、セッション ID の保存方法):

一般に、ブラウザには 2 つの保存方法が用意されていますが、プログラマが HTML の隠しフィールドを使用して実装をカスタマイズする別の方法もあります:

[1] Cookie を使用して保存します。この記事の「ログイン状態を記憶する」機能の実装は、正式にはこの方法に基づいています。

サーバーは Cookie を設定することでセッション ID をブラウザに送信します。

この有効期限を設定しない場合、ブラウザを閉じると、この Cookie はハードディスクに保存されず、セッション ID も失われます。

この時間を数日後に設定すると、ブラウザが閉じられた場合でも、この Cookie はクライアントのハードドライブに保存され、次に対応する Web サイトにアクセスしたときにもこの値が残ります。サーバーにも送信されます。 R [2] URL 付加情報の使用方法は、よく見るような AAA.JSP?JSESSIONID =* になります。この方法は、Cookie の有効期限を設定しない最初の方法と同じです。 (URL の書き換えとは、セッション ID を URL パスの末尾に直接追加することを意味します。)

[3] 3 番目の方法は、ページ フォームに隠しフィールドを追加することです。この方法は、実際には 2 番目の方法と同じです。ただし、前者は GET を介してデータを送信し、後者は POST を使用してデータを送信します。しかし明らかに後者の方が厄介です。 フォームの隠しフィールドとは、サーバーがフォームを自動的に変更して隠しフィールドを追加し、フォームの送信時にセッション ID をサーバーに返すことができるようにすることを意味します。例:

ユーザー情報をセッションに保存する前に、まずセッションを開始します $ _Session ['user'] = "zy"; ]); ユーザー名 session_destory() を破棄します



Cookie とセッションの違い:


1

、Cookie データは顧客のブラウザに保存され、セッション データはサーバーに置かれます。d現在のSESSION_IDは、対応するユーザーデータフラグを決定して、ユーザーがログインしているか、特定のアクセス許可を持っているかを判断します。

データはサーバー上に保存されるため、偽造することはできませんが、ログインしているユーザーの session_id を取得できれば、特別なブラウザを使用してユーザーのリクエストを偽造することもできます。 ️ session_id はサーバーとクライアントの接続時にランダムに割り当てられることが多いですが、同時リクエストが多い場合は重複する可能性が一度あります。
ウェブサイトにログインすると、最初は自分の情報が表示されますが、一定時間が経過するとタイムアウトになり、更新すると実際に他の人の情報が表示されます。

セッションは、アプリケーションサーバーによって維持されるサーバー側のストレージスペースであり、ユーザーがサーバーに接続すると、サーバーによって一意のセッションIDが生成され、サーバー側のセッションストレージにアクセスするための識別子として使用されます。空間。 SessionID データはクライアントに保存され、ユーザーがページを送信すると、SessionID がサーバーに送信され、セッション データにアクセスします。このプロセスには開発者の介入は必要ありません。したがって、クライアントが Cookie を無効にすると、セッションも無効になります。

2

. Cookie はあまり安全ではありません。セキュリティ上の理由から、ローカルに保存された Cookie を分析して COOKIE セッションを使用する必要があります。

3

. セッションはサーバーに一定期間保存されます。アクセスが増加すると、サーバーのパフォーマンスがさらに消費され、サーバーのパフォーマンスを低下させるために COOKIE を使用する必要があります。个单4

、1 つの Cookie によって保存されるデータは 4K を超えることはできません。多くのブラウザでは、サイトで保存できる Cookie は 20 個までに制限されています。 (セッション オブジェクトには保存されるデータ量に制限がなく、より複雑なデータ型を保存できます)

注:

セッションは簡単に期限切れになり、ユーザー エクスペリエンスが非常に低下します

Cookie は安全ではありませんが、安全ではありません。暗号化する必要があります; Cookie も永続的なものと一時的なものに分けられます;

ブラウザには Cookie 禁止機能がありますが、ほとんどのユーザーはそれを設定しません;

必ず有効期限を設定してください。有効期限を設定しないと、ブラウザが暗号化されたときに消えてしまいます。 close;

例:

パスワード記憶機能では、クライアント コンピュータに書き込まれる永続的な Cookie が使用され、次回ログインするときに Cookie 情報が自動的にサーバーに送信されます。

アプリケーションは、すべてのユーザーによって共有されるグローバル情報です。たとえば、現在この Web サイトにログインしているユーザーの数を記録し、この情報をすべてのユーザーに表示できます。 2 つの最大の違いはライフサイクルです。1 つは、IE の起動から IE のシャットダウンまでです (ブラウザーのページを閉じるとすぐにセッションが消えます)。もう 1 つは、プリセットされたライフサイクル、またはファイルが永続的に保存されることです。地元で。 (クッキー)

以上、皆さんに向けてまとめてみましたので、今後皆さんのお役に立てれば幸いです。

関連記事:


node

js

mysqlデータベースに接続する手順を詳しく解説

nodeでパスワードを暗号化する方法は何ですかjs

vueは、で取得したデータを処理します。ストアjs


以上がセッションとクッキーの違いと使い方を理解する(画像とテキストのチュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。