タグ付けされた質問 「cookies」

HTTP Cookieは、ユーザーのWebブラウザーによって保管されるデータの一部です。特に指定のない限り、CookieはJavaScriptとHTTPヘッダーを介してサーバー側の両方で作成、読み取り、変更、削除できます。


4
CSRF防止トークンをCookieに入れるのはなぜ一般的ですか?
CSRFの問題全体とそれを防ぐための適切な方法を理解しようとしています。(私が読み、理解し、同意したリソース:OWASP CSRF防止に関するチートシート、CSRFに関する質問) 私が理解しているように、CSRFに関連する脆弱性は、(Webサーバーの観点から)着信HTTPリクエストの有効なセッションCookieが認証済みユーザーの希望を反映しているという仮定によって導入されています。ただし、オリジンドメインのすべてのCookieはブラウザーによってリクエストに魔法のようにアタッチされているため、実際のサーバーは、リクエスト内の有効なセッションCookieの存在から、認証されたセッションを持つブラウザーからのリクエストであると推測できます。それはコードについて何も仮定することはできませんそのブラウザで実行している、またはそれが本当にユーザーの希望を反映しているかどうか。これを防ぐ方法は、リクエストに追加の認証情報(「CSRFトークン」)を含めることです。これは、ブラウザの自動Cookie処理以外の方法で行われます。大まかに言えば、セッションCookieはユーザー/ブラウザーを認証し、CSRFトークンはブラウザーで実行されているコードを認証します。 つまり、簡単に言うと、セッションCookieを使用してWebアプリケーションのユーザーを認証している場合は、各応答にCSRFトークンを追加し、各(変更)リクエストで一致するCSRFトークンを要求する必要があります。次に、CSRFトークンはサーバーからブラウザーへとサーバーからサーバーへの往復を行い、要求を行っているページがそのサーバーによって承認されている(生成されている)ことをサーバーに証明します。 私の質問に戻ります。これは、その往復でそのCSRFトークンに使用される特定の転送方法についてです。 (AngularJS、Django、Railsなどで)CSRFトークンをサーバーからクライアントにCookieとして(つまり、Set-Cookieヘッダーで)送信し、クライアントのJavascriptでCookieから削ってそれを添付するのが一般的ですサーバーに送り返す別のXSRF-TOKENヘッダーとして。 (別の方法は、たとえばExpressによって推奨される方法です。サーバーによって生成されたCSRFトークンは、サーバー側のテンプレート拡張を介して応答本文に含まれ、サーバーに戻すコード/マークアップに直接添付されます。非表示のフォーム入力として。この例は、よりWeb 1.0風の方法ですが、より一般的なJSの重いクライアントに一般化されます。 CSRFトークンのダウンストリームトランスポートとしてSet-Cookieを使用するのはなぜそれほど一般的ですか。なぜこれが良いアイデアなのでしょうか。これらすべてのフレームワークの作成者がオプションを慎重に検討し、これを間違えなかったと思います。しかし、一見したところ、基本的にCookieの設計上の制限を回避するためにCookieを使用することは、お粗末なようです。実際、ラウンドトリップトランスポートとしてCookie(サーバーの下流にSet-Cookie:ヘッダーがブラウザにCSRFトークンを通知し、ブラウザにそれをサーバーに返すようにCookie:ヘッダーを上流に送信する)を使用した場合、脆弱性が再導入されます。修正しようとしています。 上記のフレームワークは、CSRFトークンのラウンドトリップ全体でCookieを使用しないことに気づきました。彼らはSet-Cookieダウンストリームを使用し、次に他の何か(X-CSRF-Tokenヘッダーなど)をアップストリームに使用します。これにより、脆弱性が排除されます。ただし、ダウンストリームトランスポートとしてSet-Cookieを使用しても、誤解を招く可能性があり、危険です。これで、ブラウザはCSRFトークンをすべての要求に添付し、本物の悪意のあるXSRF要求を含みます。せいぜい要求が必要以上に大きくなり、最悪の場合でも意味のあるサーバーコードの一部が実際にそれを使用しようとする可能性があり、これは本当に悪いことです。さらに、CSRFトークンの実際の受信者はクライアント側のJavascriptであるため、このCookieをhttpのみで保護することはできません。
283 security  cookies  web  csrf  owasp 



22
クッキーを削除する
クッキーを削除したいとき unset($_COOKIE['hello']); FirefoxのCookieブラウザーで、Cookieがまだ存在していることがわかります。どうすれば本当にクッキーを削除できますか?
260 php  cookies 


13
クロスドメインCookie
2つの異なるドメインに2つのwebapps WebApp1とWebApp2があります。 HttpResponseのWebApp1にCookieを設定しています。 WebApp2のHttpRequestから同じCookieを読み取る方法は? Cookieは特定のドメインに固有であり、異なるドメインからはアクセスできないため、奇妙に聞こえるかもしれません。ただし、複数のWebアプリケーション間で共有できるCROSS-DOMAIN Cookieについて聞いたことがあります。CROSS-DOMAIN Cookieを使用してこの要件を実装するにはどうすればよいですか? 注:私はJ2EE webappsでこれを試しています

6
開発者ツールを使用してInternet Explorer 11でCookieを表示する方法
IE11の開発者ツールを使用して設定されたCookieを表示する方法を探しています。ネットワークプロファイリングで、送受信されるCookieを表示するオプションが表示されますが、これは実際には同じではありません。リクエストごとなので使いづらいです。確かに、IE10でできるようにすべてのCookieを表示する方法があるはずです。

3
Cookieベースの認証はどのように機能しますか?
誰かがCookieベースの認証がどのように機能するかを段階的に説明してくれますか?私は、認証やCookieを含むことをしたことがありません。ブラウザは何をする必要がありますか?サーバーは何をする必要がありますか?どんな順番で?物事を安全に保つにはどうすればよいですか? 私はさまざまな種類の認証とCookieについて読んでいますが、2つを一緒に使用する方法の基本的な説明が欲しいのですが、それらはしばしば一緒に使用されることだけを読みましたが、方法の説明が見つかりませんでした。

8
すべてのWebリクエストがブラウザのCookieを送信しますか?
すべてのWebリクエストがブラウザのCookieを送信しますか? ページビューではなく、画像や.jsファイルなどのリクエストです。 更新 Webページに50の要素がある場合、それは50のリクエストです。リクエストごとに同じCookieを送信するのはなぜですか。キャッシュされていないか、すでにあることを知っていますか?
198 cookies 

6
Cookieを使用したFetch API
新しいFetch APIを試していますが、Cookieに問題があります。具体的には、ログインが成功した後、将来のリクエストにCookieヘッダーが含まれますが、Fetchはそのヘッダーを無視しているようで、Fetchで行われたすべてのリクエストは不正です。 Fetchがまだ準備ができていないためか、FetchがCookieで機能しないためですか? 私はアプリをWebpackでビルドします。同じ問題のないReact NativeでもFetchを使用しています。
198 cookies  fetch-api 

9
HttpOnly CookieはAJAXリクエストでどのように機能しますか?
Cookieに基づくアクセス制限があるサイトでAJAXが使用されている場合、JavaScriptはCookieにアクセスする必要があります。HttpOnly CookieはAJAXサイトで機能しますか? 編集:マイクロソフトは、HttpOnlyが指定されている場合にJavaScriptがCookieにアクセスできないようにすることで、XSS攻撃を防ぐ方法を作成しました。FireFoxは後でこれを採用しました。だから私の質問は:StackOverflowのようなサイトでAJAXを使用している場合、Http-Only Cookieはオプションですか? 編集2:質問2. HttpOnlyの目的がCookieへのJavaScriptアクセスを防ぐことであり、XmlHttpRequestオブジェクトを介してJavaScript経由でCookieを取得できる場合、HttpOnlyの目的は何ですか? 編集3:ウィキペディアからの引用です: ブラウザがこのようなCookieを受信すると、次のHTTP交換では通常どおりにそれを使用することになっていますが、クライアント側のスクリプトからは見えないようになっています。[32] このHttpOnlyフラグは標準の一部ではなく、すべてのブラウザーに実装されているわけではありません。現在、XMLHTTPRequestを介したセッションCookieの読み取りまたは書き込みは禁止されていないことに注意してください。[33]。 document.cookieHttpOnlyを使用するとブロックされることを理解しています。しかし、XMLHttpRequestオブジェクトのCookie値を読み取ることができ、XSSを許可できるようです。HttpOnlyはどのようにしてあなたをより安全にしますか?Cookieを本質的に読み取り専用にすることによって? あなたの例では、に書き込むことはできませんdocument.cookieが、それでもCookieを盗み、XMLHttpRequestオブジェクトを使用してドメインに投稿することができます。 <script type="text/javascript"> var req = null; try { req = new XMLHttpRequest(); } catch(e) {} if (!req) try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {} if (!req) try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} req.open('GET', 'http://stackoverflow.com/', …
195 ajax  cookies  httponly 

13
JavaScriptでCookieを名前で読み取るための最も短い関数は何ですか?
JavaScriptでCookieを読み取るための、最も短く、正確で、ブラウザーに互換性のある方法は何ですか? 非常に頻繁に、スタンドアロンスクリプトを作成しているときに(外部の依存関係がない場合)、Cookieを読み取るための関数を追加し、通常はQuirksMode.orgreadCookie()メソッドにフォールバックします(280バイト、216に縮小)。 function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } それは仕事をしますが、醜く、毎回かなりの膨満感を加えます。 jQuery.cookieが次のようなものを使用するメソッド(変更、165バイト、125縮小): function read_cookie(key) { var result; return (result = …

19
明示的なドメインを持つローカルホスト上のCookie
私はクッキーについていくつかの基本的なことを見逃しているに違いない。私は、サーバー側でクッキーを設定localhostを、オンとローカルホスト(または.localhost)として明示的にドメインを指定します。一部のブラウザではCookieが受け入れられないようです。 Firefox 3.5: FirebugでHTTPリクエストを確認しました。私が見るのは: Set-Cookie: name=value; domain=localhost; expires=Thu, 16-Jul-2009 21:25:05 GMT; path=/ または(ドメインを.localhostに設定した場合): Set-Cookie: name=value; domain=.localhost; expires=Thu, 16-Jul-2009 21:25:05 GMT; path=/ どちらの場合も、Cookieは保存されません。 IE8:追加のツールは使用していませんが、Cookieは保存されていないようです。Cookieは後続のリクエストで返送されないためです。 オペラ9.64:ローカルホストと.localhost両方の仕事が、私は環境設定でクッキーのリストをチェックしたときに、それがローカルホストの下にリストされていていても、ドメインは(グループ化リスト内)localhost.localに設定されています。 Safari 4: localhostと.localhostはどちらも機能しますが、環境設定では常に.localhostとしてリストされます。一方、明示的なドメインのないcookieは、ローカルホスト(ドットなし)としてのみ表示されます。 localhostの問題は何ですか?このような多くの不整合があるため、localhostに関連するいくつかの特別なルールが必要です。また、ドメインの前にドットを付ける必要がある理由は完全にはわかりません。RFC 2109は次のように明示的に述べています。 ドメイン属性の値に埋め込まれたドットが含まれていないか、ドットで始まっていません。 どうして?この文書は、セキュリティに関して何かしなければならないことを示しています。私は仕様全体を読んでいないことを認めなければなりません(後で読む可能性があります)が、少し奇妙に聞こえます。これに基づいて、localhostにcookieを設定することは不可能です。
191 cookies  setcookie 

12
Cookieとセッション
数か月前にPHPを使い始めました。私のWebサイトにログインシステムを作成するために、Cookieとセッション、およびそれらの違い(Cookieはユーザーのブラウザーとサーバー上のセッションに保存されます)について読みました。当時、私はCookieを好み(そしてCookieが嫌いな人は!?)、「誰が気にかけているのか?私のサーバーに保存することにあまり意味がない」と言ったので、先に進んでCookieを使用しました私の学士卒業プロジェクト。しかし、私のアプリの大部分を実行した後、ユーザーのIDを格納する特定のケースでは、セッションの方が適切であると聞きました。では、なぜセッションではなくCookieを使用したのか、陪審員から尋ねられたらどうしたらよいかと考え始めました。私にはその理由があります(ユーザーに関する情報を内部的に保存する必要がないため)。?それともそれ以上ですか? ユーザーIDを保持するためにCookieを使用するメリット/デメリットについて教えてください。 StackOverflowをご利用いただきありがとうございます。
188 php  session  cookies 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.