Security-testing-http-methods

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

セキュリティテスト-HTTPメソッド

HTTPメソッド

HTTP/1.1の共通メソッドのセットを以下に定義し、このセットは要件に基づいて拡張できます。 これらのメソッド名は大文字と小文字が区別され、大文字で使用する必要があります。

S.No. Method and Description
1

GET

これは、特定のURIを使用して特定のサーバーから情報を取得するために使用されます。 GETを使用するリクエストは、データを取得するだけで、データに他の影響を与えません。

2

HEAD

GETと同じですが、ステータス行とヘッダーセクションのみを転送します。

3

POST

サーバーにデータを送信するために使用されます。 たとえば、顧客情報、ファイルのアップロードなど。 HTMLフォームを使用します。

4

PUT

ターゲットリソースの現在のすべての表現を、アップロードされたコンテンツに置き換えます。

5

DELETE

URIで指定されたターゲットリソースの現在の表現をすべて削除します。

6

CONNECT

指定されたURIで識別されるサーバーへのトンネルを確立します。

7

OPTIONS

ターゲットリソースの通信オプションについて説明します。

8

TRACE

ターゲットリソースへのパスに沿ってメッセージループバックテストを実行します。

GETメソッド

要求のURL部分にパラメーターを指定することにより、Webサーバーからデータを取得します。 これは、ドキュメントの取得に使用される主な方法です。 次の例では、GETメソッドを使用して hello をフェッチしています-

GET/hello HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.finddevguides.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

上記のGETリクエストに対して次のサーバー応答が発行されます-

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Vary: Authorization,Accept
Accept-Ranges: bytes
Content-Length: 88
Content-Type: text/html
Connection: Closed

<html>
   <body>
      <h1>Hello, World!</h1>
   </body>
</html>

HEADメソッド

機能的にはGETと似ていますが、サーバーは応答行とヘッダーで応答しますが、エンティティ本体はありません。 次の例では、HEADメソッドを使用して hello に関するヘッダー情報を取得します-

HEAD/hello HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.finddevguides.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

上記のGETリクエストに対して次のサーバー応答が発行されます-

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Vary: Authorization,Accept
Accept-Ranges: bytes
Content-Length: 88
Content-Type: text/html
Connection: Closed

サーバーはヘッダーの後にデータを送信しないことに注意してください。

POSTメソッド

サーバーにデータを送信するときに使用します。 たとえば、ファイルの更新、フォームデータなど。 次の簡単な例では、POSTメソッドを使用して、 process.cgi によって処理され、最終的に応答が返されるフォームデータをサーバーに送信します-

POST/cgi-bin/process.cgi HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.finddevguides.com
Content-Type: text/xml; charset = utf-8
Content-Length: 88
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

<?xml version = "1.0" encoding = "utf-8"?>
<string xmlns = "http://clearforest.com/">string</string>

サーバー側のスクリプト process.cgi は、渡されたデータを処理し、次の応答を送信します-

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Vary: Authorization,Accept
Accept-Ranges: bytes
Content-Length: 88
Content-Type: text/html
Connection: Closed

<html>
   <body>
      <h1>Request Processed Successfully</h1>
   </body>
</html>

PUTメソッド

PUTメソッドは、指定されたURLで指定された場所に含まれるエンティティ本体を格納するようサーバーに要求するために使用されます。 次の例では、サーバーに、サーバーのルートにある hello に特定のentity-boyを保存するように要求します-

PUT/hello HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.finddevguides.com
Accept-Language: en-us
Connection: Keep-Alive
Content-type: text/html
Content-Length: 182

<html>
   <body>
      <h1>Hello, World!</h1>
   </body>
</html>

サーバーは指定されたエンティティ本体を hello ファイルに保存し、次の応答をクライアントに送信します-

HTTP/1.1 201 Created
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Content-type: text/html
Content-length: 30
Connection: Closed

<html>
   <body>
      <h1>The file was created.</h1>
   </body>
</html>

DELETEメソッド

DELETEメソッドは、指定されたURLで指定された場所にあるファイルを削除するようサーバーに要求するために使用されます。 次の例では、サーバーのルートにある特定のファイル hello を削除するようサーバーに要求します-

DELETE/hello HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.finddevguides.com
Accept-Language: en-us
Connection: Keep-Alive

サーバーは上記のファイル hello を削除し、次の応答をクライアントに返します-

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Content-type: text/html
Content-length: 30
Connection: Closed

<html>
   <body>
      <h1>URL deleted.</h1>
   </body>
</html>

CONNECTメソッド

クライアントがHTTP経由でWebサーバーへのネットワーク接続を確立するために使用します。 次の例は、ホストfinddevguides.comで実行されているWebサーバーとの接続を要求します-

CONNECT www.finddevguides.com HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

サーバーとの接続が確立され、次の応答がクライアントに送り返されます-

HTTP/1.1 200 Connection established
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)

OPTIONSメソッド

クライアントは、WebサーバーでサポートされているHTTPメソッドやその他のオプションを調べるために使用します。 クライアントは、OPTIONSメソッドのURL、またはサーバー全体を参照するアスタリスク(*)を指定できます。 次の例は、finddevguides.comで実行されているWebサーバーでサポートされているメソッドのリストを要求します-

OPTIONS * HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

サーバーは、たとえば、サーバーの現在の構成に基づいて情報を送信します-

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Type: httpd/unix-directory

TRACEメソッド

これは、HTTP要求の内容をリクエスターにエコーバックするために使用され、開発時にデバッグ目的で使用できます。 次の例は、TRACEメソッドの使用方法を示しています-

TRACE/HTTP/1.1
Host: www.finddevguides.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

サーバーは、上記のリクエストに応じて次のメッセージを送信します-

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Connection: close
Content-Type: message/http
Content-Length: 39

TRACE/HTTP/1.1
Host: www.finddevguides.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)