Security-testing-http-protocol-basics

提供:Dev Guides
移動先:案内検索

セキュリティテスト-HTTPプロトコルの基本

プロトコルを理解することは、セキュリティテストを十分に把握するために非常に重要です。 ウェブサーバーとクライアントの間でパケットデータをインターセプトすると、プロトコルの重要性を理解できます。

HTTPプロトコル

ハイパーテキスト転送プロトコル(HTTP)は、分散型の協調型ハイパーメディア情報システム用のアプリケーションレベルのプロトコルです。 これは、1990年以降のWorld Wide Webのデータ通信の基盤です。 HTTPは、リクエストメソッド、エラーコード、およびヘッダーの拡張機能を使用して、他の目的にも使用できる汎用のステートレスプロトコルです。

基本的に、HTTPはTCP/IPベースの通信プロトコルであり、HTMLファイル、画像ファイル、クエリ結果などのデータを配信するために使用されます。 ウェブ上で。 コンピューターが相互に通信するための標準化された方法を提供します。 HTTP仕様では、クライアントが要求したデータをサーバーに送信する方法、およびサーバーがこれらの要求に応答する方法を指定しています。

基本的な機能

HTTPをシンプルかつ強力なプロトコルにする次の3つの基本機能があります-

  • * HTTPはコネクションレス*-HTTPクライアント、つまりブラウザがHTTPリクエストを開始します。 要求を行った後、クライアントはサーバーから切断し、応答を待ちます。 サーバーは要求を処理し、クライアントとの接続を再確立して応答を送り返します。
  • * HTTPはメディアに依存しません*-クライアントとサーバーの両方がデータコンテンツの処理方法を知っている限り、HTTPであらゆるタイプのデータを送信できます。 これは、クライアントとサーバーが適切なMIMEタイプを使用してコンテンツタイプを指定するために必要です。
  • * HTTPはステートレス*-HTTPはコネクションレスであり、これはHTTPがステートレスプロトコルであるという直接的な結果です。 サーバーとクライアントは、現在の要求の間のみ互いに​​認識します。 その後、二人はお互いを忘れます。 このプロトコルの性質により、クライアントもブラウザも、Webページ全体の異なるリクエスト間で情報を保持できません。

HTTP/1.0は各要求/応答交換に新しい接続を使用しますが、HTTP/1.1接続は1つ以上の要求/応答交換に使用できます。

建築

次の図は、Webアプリケーションの非常に基本的なアーキテクチャを示し、HTTPが存在する場所を示しています-

HTTPアーキテクチャ

HTTPプロトコルは、Webブラウザ、ロボット、検索エンジンなどのクライアント/サーバーアーキテクチャに基づく要求/応答プロトコルです。 HTTPクライアントとして機能し、Webサーバーはサーバーとして機能します。

  • クライアント-HTTPクライアントは、リクエストメソッド、URI、プロトコルバージョンの形式でサーバーにリクエストを送信し、その後にTCP/IPを介してリクエスト修飾子、クライアント情報、および可能性のあるボディコンテンツを含むMIMEのようなメッセージが続きます接続。
  • Server -HTTPサーバーは、メッセージのプロトコルバージョンと成功またはエラーコードを含むステータス行で応答し、その後にサーバー情報、エンティティメタ情報、および可能性のあるエンティティ本体コンテンツを含むMIMEのようなメッセージが続きます。

HTTP –欠点

  • HTTPは完全に保護されたプロトコルではありません。
  • HTTPは、通信のデフォルトポートとしてポート80を使用します。
  • HTTPはアプリケーション層で動作します。 データ転送のために複数の接続を作成する必要があり、管理オーバーヘッドが増加します。
  • HTTPの使用に暗号化/デジタル証明書は必要ありません。

HTTPプロトコルの詳細

HTTPプロトコルの詳細を理解するには、以下の各リンクをクリックしてください。

  • link:/security_testing/security_testing_http_parameters [HTTP Parameters]
  • link:/security_testing/security_testing_http_messages [HTTP Messages]
  • *リンク:/security_testing/security_testing_http_requests [HTTP Requests] *
  • *リンク:/security_testing/security_testing_http_responses [HTTP Responses] *
  • link:/security_testing/security_testing_http_methods [HTTPメソッド]
  • link:/security_testing/security_testing_http_statuscodes [HTTP Status Codes]
  • link:/security_testing/security_testing_http_headerfields [HTTPヘッダーフィールド]
  • *リンク:/security_testing/security_testing_http_security [HTTP Security] *