web-dev-qa-db-ja.com

SSLが有効な(https)Webサイトでブラウザにhttpを強制的に使用させることは可能ですか?

私は、セッションIDをCookieに保存するのではなく、ローカルストレージに保存することでセキュリティ調査を行っていました。ローカルストレージの値にHttpOnlyとしてタグを付けることができないため、XSS攻撃に対して脆弱である可能性があることを理解しています。すべての入力が適切に検証されているため、この問題から解放されています。

しかし、私が発見したもう1つの問題は、サーバーへの転送中のデータの改ざんです。ローカルストレージセッションIDはSecureでタグ付けできないため、暗号化されていないチャネル(HTTP)を介して送信される可能性があります。これを軽減するために、SSLで保護されたHTTP経由でページにアクセスできるかどうかを知りたいです。

12
Anandu M Das

SSL(またはTLS)で保護されているページにはHTTP経由でアクセスできません。これは、ページが保護されなくなったことを意味します。

HTTPを介してHTTPSで保護されたWebサイトの特定のページにアクセスすることは可能ですか?それは可能ですが、非常に安全ではありません。さらに、複数のページにまたがるセッションを追跡する必要があるため、セッションIDを含むCookieは、すべてのページ要求と一緒に送信する必要があります。これは、ほとんどすべてのページをHTTP経由で提供する必要があることを意味し、その結果、サイトが安全でなくなります。

1ページのみのセッションCookieが必要な場合は、クライアントにその1ページに対してHTTPリクエストを実行するように指示できます。これにより、「セキュア」フラグが設定されていないすべてのCookieが送信されます。ただし、これは、これらすべてのCookieがMITM攻撃に対して脆弱であり、通信を傍受しているすべてのユーザーが読み取ることができることを意味します。

私のアドバイス:HTTP経由でHTTPSサイトのページを意識的に提供しないでください。

だから、あなた自身に尋ねる必要がある質問はなぜ私のセッションIDに安全なタグしか付けられないのですか。怠惰ですか、それともこのCookieを安全であるとタグ付けできない別の理由がありますか?


ちなみに、ブラウザーがWebサイトで常にHTTPSを使用するように強制するには(HTTPSバージョンにアクセスするために302リダイレクトに依存しないでください)、HTTP Strict Transport Securityを使用できます。詳細は [〜#〜] owasp [〜#〜] を参照してください。

8
Michael

はい、もちろんです。

  • 最も単純な例は、無意識にまたは意志によってhttp:// ...としてリクエストを送信するユーザーです。
  • (悪意のある可能性がある)Webサーバーも、30倍のリダイレクトまたはすべてのハイパーリンクがhttps://ではなくhttp://を指すページを送信するだけで、これを行うことができます。

後者の例: https://www.Amazon.com に接続すると、SSL保護なしのページに移動します。

2
Marcel

私はあなたがhttp://プロトコル経由でサーバーにアクセスする間、sslでデータを暗号化することについて尋ねると思います。重要なデータを保護しながら、あらゆる種類のssl警告を回避するための素晴らしい解決策になると思います。

私はその質問を非常に興味深く見つけたので、私は自分のサーバーでそれを試すことに進みます。

しかし、質問については、サーバーはデフォルトではそれを行いません。 ssl data trought http server listen interfaceを送信できたとしても、ブラウザは要求されたデータを適切に処理しません。 https:// URLコンテンツに到達したときのsslデータの復号化プロセスが発生していると考えてください。設計上、要求を理解できないため、暗号化されたコンテンツをフェッチしていると、何らかの形でクラッシュします。

目標が、通常のユーザー(通常のブラウザを使用)を100%に近づけることで、ブラウザがリクエストで機能しないことを確認することです。

目的がhttpプロトコル接続を使用してsslデータを送信することである場合、ボットサーバーとブラウザーをハッキング/変更する必要があります。トラフィックスキャンを介して、「読み取り不可」のssl暗号化データが含まれるhttp接続として認識されます。

非常に興味深い質問です。それについて少し研究を始めました。

0
m3nda