web-dev-qa-db-ja.com

Cookieを使用しないことにはセキュリティ上の利点がありますか?

悪名高いTorMailに、Cookieなしで電子メールサービスを使用できるようにするレガシーモードがあったことを私は読んでいました。この記事は、エンドユーザーのプライバシーの問題のためにこれを行ったことを示唆しています。私が理解していることから、クッキーなしでセッションを保存することは不可能です。だから私は尋ねなければなりません:

  1. 人々はどのようにCookieを使用しないのですか、PHPセッションまたは類似のものを使用していますか?

  2. Cookieが必要ない場合、なぜそれらを使用するのですか?

  3. それらを回避することのセキュリティ/プライバシーの利点は何ですか?

6
Dylan

なぜクッキーなのか、そして代替案は何か?

HTTPはステートレスです。あなたを記憶している(新しいページにアクセスするたびにパスワードを再入力する必要がない)Webページはステートフルです。ステートレスプロトコルとステートフルアプリケーションの間のギャップを埋めるには、すべてのリクエストに含まれるある種のセッション識別子が必要です。

これを行う標準的な方法は、Cookieを使用することです。しかし、HTTPリクエストのどこにでも置くことができます。いくつかの例:

  • 当時の一般的な慣例は、セッション識別子をURLに含めることでしたが、これはあらゆる種類のログに記録され、リファラーヘッダーを介してリークすることを意味していました。あまりよくない。

  • シングルページアプリは、識別子(認証トークンなど)をクライアントのJavaScript変数に格納し、すべてのリクエストでカスタムヘッダーで送信することができます。これは、1回のページ読み込みでのみ有効なCookieのようなものです。 ( Marko Vodopija が指摘しているように、Cookieのようにhttp-onlyで識別子を保護できなかったため、ここではセキュリティがいくらか弱くなっています。)

これらは、Cookieの限定バージョンを「シミュレート」するさまざまな方法と考えることができます。

ちなみに、PHPはセッションにCookieを使用しています。

一部の人々はなぜクッキーを嫌うのですか?

Cookieについて本質的に安全なものはなく、それらを使用することは、より工夫された代替方法のどれよりも安全であることに変わりはありません。逆に、私たちが見てきたように、いくつかの代替品はより悪いです。

一部のCookieが嫌いである理由は、Cookieが非常に有用であるのと同じ理由であり、Webをステートフルにします。これは、それらがあなたを追跡するために使用できることを意味します。したがって、Cookieを完全に無効にしたい場合もあります。

これがおそらく、プライバシー重視のサイトがCookieを使用しない代替手段を提供する理由です。 サイト自体が安全になるわけではありませんが、プライバシー上の理由からCookieがオフになっているユーザーにサービスを提供できます。

2
Anders

@Andersの答えを補足するだけです。

Cookieは、それ自体が非接続のステートレスプロトコルであるHTTPでステートフルセッションを使用する1つの方法です。セッションは、Webアプリケーションおよびインラインビジネスに必要です。

Cookieは昔はJavaScriptと同じように嫌われていました。最初の方法は使用統計を収集する方法であり、プライバシーの問題がありますが、もう1つはサーバーがブラウザを制御できるため、セキュリティの問題があります。現在、多くのサイトはCookieまたはJavaScriptが無効になっていると使用できなくなり、ブラウザでそれらを無効にすることは必ずしも簡単な作業ではありません。したがって、私の意見では、Cookieを必要とするサービスを提供することは問題ありません。セッションを確立できない場合は、サービスにCookieが必要であるという警告ページを表示するだけです。

URLの書き換えは、HTTPでセッションを提供するためのCookieに代わるものです(そうでしたか?)。そのモードでは、キーとセッション識別子で構成されるパラメーターを一貫して追加します。そのモードでは、すべてのセッションデータがサーバー側で送信されます。このようにすると、URLで交換されるのは識別子だけなので、データ漏洩のリスクがなくなります。欠点は、ブックマークに対応していないことです。URLにはセッションIDが含まれているため、それを含むページのURLをブックマークすると、後で使用しようとすると無効なセッションエラーが発生します。また、同じドメインのサイト間で情報をやり取りするためにCookieを使用するよりもはるかに困難です。そのため、Cookieは現在、ステートフルなHTTPサイトまたはアプリケーションを持つための標準的な方法です。

Cookieを好まない人は、URLの書き換えに同等の永続的なものがないため、永続的なCookieはクライアントの行動、主要なWeb会社(Google、Facebook、Amazonなど)でのデータ収集に非常によく使用され、許可されていると主張します。彼らのサイトを閲覧するためのクッキー、そしてそのためにそのURLの書き換えは多かれ少なかれ見捨てられてきました。事実にかかわらず、ほとんどのサイトでCookieが必要であり、ほとんどのユーザーがCookieを許可しているため、現在は意味がありません。

1
Serge Ballesta