クッキー、セッション、詳細なトークン

クッキー、セッション、詳細なトークン

それは非常に具体的なものである、データを永続的に保存することができ、ブラウザを指し、単にブラウザの実装のデータストレージ機能です。
ブラウザに送信され、サーバによって生成されたクッキーは、KVの形にディレクトリ内のテキストファイルに保存されたブラウザのクッキーは、サーバーにあなたが同じサイトを要求する次回のクッキーを送信します。クッキーがクライアント上に存在するので、ブラウザはクッキーが悪意をもって使用されることはありません確実にするためにいくつかの制限が追加されますが、あまりにも多くのディスクスペースを占有しないので、ドメインあたりのCookieの数が限られています。

HTTP契約クッキーの詳細

クッキーは、常にクライアントの記憶場所がメモリとハードドライブクッキークッキーに分けることができるに従って、クライアントに格納されています。メモリに保存されているブラウザによって維持メモリクッキーは、ブラウザを閉じた後、その存在時間が短い姿を消しました。ユーザーが手動でクリーンアップや有効期限に、Cookieのハードディスクは削除されず、その寿命は長期的でない限り、ハードディスクにクッキーハードディスクは、有効期限があります。だから、時間の存在により、非永続的かつ永続的なクッキークッキーに分けることができます。

クッキーのプロパティ

クッキーは、一般的にあって、属性があります。

ドメイン:以下のドメインまたはサブドメインに属している現在のCookieを示すフィールド。

ドメインの値は、ドメインのプライマリドメインが現在のhttpリクエストが提出さに対応し、デフォルト値、その後、指定されていない場合のSet-Cookieは、サーバーによって返されました。このようなへのアクセスなどhttp://www.example.com、www.example.comのデフォルト値であるクッキー、ノードメイン名の値を返します

パス:パスは、あなたのクッキーを表します。

時間/マックス・年齢を期限切れ:クッキーの有効性を示しています。値の有効期限が切れると、この時間の後、クッキーが無効になり、時間です。またはMAX-年齢と現在のCookieが失敗した後の時間で指定します。サーバから返されたクッキーは、時​​間を期限切れにするかを指定しない場合、それはこのクッキーは、現在のセッションでのみ有効であることを示し、それは、セッションクッキー、現在のセッションの終了後のセッションで、それが期限切れ。クッキーは、ブラウザを削除すべきページの(ブラウザ)を閉じたときに、対応します。

セキュア:クッキーはHTTPSのみトランスポートを使用することができることを示しています。認証情報を含むクッキーは、このクッキーhttpsをしなければならない伝送の送信を要求するときに一般的に使用されています。

HttpOnlyの:クッキーは、HTTPまたはHTTPSトランスポートを使用しなければならないことを示しています。これは、JavaScriptなどのブラウザのスクリプトは、この操作はクッキーにアクセスすることを許可されていないことを意味します。

サーバからクライアントに送られたクッキー

サーバから、クッキーはクライアント、対応するSet-Cookieに送信されます。値に対応するCookieの名前、および各属性を含みます。

Set-Cookie: lu=Rg3vHJZnehYLjVg7qi3bZjzg; Expires=Tue, 15 Jan 2013 21:47:38 GMT; Path=/; Domain=.169it.com; HttpOnly

Set-Cookie: made_write_conn=1295214458; Path=/; Domain=.169it.com

Set-Cookie: reg_fb_gate=deleted; Expires=Thu, 01 Jan 1970 00:00:01 GMT; Path=/; Domain=.169it.com; HttpOnly

クライアントからサーバにクッキーを送信

サーバのクッキーにクライアントから送信する場合、クッキーは、個々の属性に伝わるが、唯一の対応する名前と値を送信していません。

GET /spec.html HTTP/1.1  

Host: www.example.org  

Cookie: name=value; name2=value2  

Accept: */*  

クッキーを設定し、改正

サーバは対応が達成され、対応するクッキーを設定するには、のSet-Cookieを介して外部、クライアント(ブラウザ)に送信し、対応するクッキーを作成または更新するだけでなく、ブラウザに組み込まれたJavaScriptなどのスクリプト、経由する場合、さらに、運転中のjs document.cookie。

クッキー欠陥

  • クッキーは、その潜在的にトラフィックを増やす、各HTTPリクエストに添付されます。
  • HTTPリクエストでクッキーがクリアテキストで渡されているので、そのセキュリティが問題です。(HTTPSを使用する場合を除きます)
  • クッキーのサイズの上限は4キロバイト程度です。複雑なストレージ要件については、それは十分ではありません。

セッション(セッション):

文字通り、会話を話します。これはあなたに似ており、どのようにあなたが現在とジョー・スミスに話を知っている、いないジョン・ドウがそれで、人に話を?彼はジョー・スミスであることを他のいくつかの特性(外観、など)が存在する必要があります。

セッションでは、同様の理由、あなたは彼のyesにリクエストをした人を知りたい現在のサーバーです。この区別を行うために、各クライアントのために別のサーバーに行くこと「アイデンティティ」が割り当てられ、その後、サーバーに送信されるたびに、クライアントが時間を要求し、「アイデンティティ」に置かれ、サーバはリクエストが来ることを知っています誰が持っていました。この「アイデンティティ」を保存する方法クライアント用としてブラウザクライアントのために、我々は、デフォルトのクッキーのやり方を使用している、さまざまな方法を持つことができます。
サーバーが一時的に破壊されるサイトを離れた後、サーバー、ユーザーセッションに保存されているユーザーのセッション情報を使用しています。このユーザー情報が格納されているが、比較的クッキーはより安全ですが、セッションは欠陥があります:Webサーバーが負荷分散、セッションが失われます別のサーバーに、次の操作要求を行うにした場合。


トークン(トークン):

1.利用者は、トークンがクライアントに返され、成功した後に確認し、チェックをログに記録します。
クライアントに格納されたデータ受信後2.クライアント
の各訪問がサーバにトークンを運んでいる3.クライアントAPIを。
4.サーバーは、フィルタ校正フィルタを使用しています。要求されたデータは、チェックが成功した返され、エラーコードチェックに失敗を返します

次のように要約:

クライアントに接続されたサーバは、サーバがクライアントに、セッションID(セッションID)を生成します。一般的なデフォルトのブラウザクライアントは、このセッションID(アイデンティティ)を保存するためにクッキーの方法を使用しています。偽造クライアントのセッションIDを防ぐために、検証はキーデータ+アルゴリズムは、署名を作ること、キーです。クライアントデータと共に+比較トークンサーバへの署名、同じ鍵署名データを計算し、一般的なアルゴリズム+とサーバ、およびテープ上のクライアント署名は、同じクライアントがログインした、異なるデータであってもよいことを示すように改ざん、検証エラーを返します。

参考:https://blog.csdn.net/Lyong19900923/article/details/91794284

https://www.cnblogs.com/bq-med/p/8603664.html

おすすめ

転載: www.cnblogs.com/mengw/p/11646923.html