-5

おはようございます。今日は Web 開発の試験を受けます。ほとんどの試験にかなり自信を持っていますが、過去の論文を見てみると、次の質問に出くわしました。

b) 開発者はHTTP GET、メッセージ ボード システムのユーザー メッセージを送信するために を使用することを決定します。潜在的なセキュリティ上の脅威を説明し、それらを克服する方法について話し合います。次の 2 つの状況を考慮する必要があることに注意してください。

  1. HTTP GET を使用する必要があります。
  2. HTTP GET が変更される可能性があります。(15点)

POSTとについては知ってGETいますが、15 点満点を達成するのに十分なほど詳しく説明できるかどうかはわかりません。

これは私が質問に答えようとする試みです。私を正しい方向に導くために提案を行うことができれば、それは大歓迎です:

GET は多少安全ではありません。メッセージがプライベート メッセージである場合、データは機密情報である可能性が高いため、追加のセキュリティが含まれていない限り、GET は使用しないでください。GET は URL にユーザー メッセージを表示し、誰でもこれを閲覧できるようにし、肩越しに見ることができるようにします。本質的に、投稿はわずかに安全です。URL にメッセージを表示せず、代わりに HTTP ヘッダーに追加しますが、これはHTTP プロトコルが安全であり、すべての機密データに対して暗号化を考慮する必要がある場合にのみ安全です。

誰かがこの質問に答えて何を書くことができるかを提案できれば、それは大歓迎です!

ありがとう

4

1 に答える 1

2

セキュリティについて話している場合、いくつかのレベルがあります。GET または POST を使用することは、おそらく生きているか死んでいるかという選択ではありませんが、2 つを区別するのに間違いなく役立ちます。

名前が示すように、GET情報を取得し、情報POSTを送信するために使用されます。それを念頭に置いておけば、どの方法を使用するかを知ることはそれほど難しくありません。

あなたの場合、ユーザーはメッセージボードに新しいメッセージを投稿しています。それでPOST正しい答えになります。これに対してa がより安全である理由POSTは、ユーザーまたは JavaScript からの特定のアクションが常に必要になるためです。メールでリンクを送って直接新しいメッセージを投稿させることはできません。私が使用する場合は、 http://www.example.com/postmessage.php?message=GET post% 20me のようなリンクを送信できます。クリックすると投稿されます。

あなたのメッセージボードがユーザー名パスワードで保護されていて、あなたがログインしている場合、私はあなたに代わってGETリクエストを投稿しましたが、それが本当のあなたではないことは誰も知りません. したがって、これは潜在的なセキュリティ リスクです。

リンク付きのメールを送信した場合でも、クリックする必要があります。しかし、同じメッセージ フォーラムに画像を投稿することは許可されると考えてください。私は自分の好きなように画像を投稿することができ、<img src='/postmessage.php?message=post%20me' width='0' height='0'/>私の投稿にアクセスするすべてのユーザーもそのメッセージをGET投稿します.

JavaScript を投稿できれば、明らかに POST リクエストも作成できます。しかし、JavaScript を投稿することはあまり一般的ではありません。

リクエストのもう 1 つの副作用GETは、検索エンジンもこれをスパイダーし、メッセージを作成する可能性があることです。

最後に: get リクエストは制限されています。大きなメッセージを投稿したい場合は、投稿が必要です。クエリ文字列の最大可能長は? を参照してください。クエリ文字列の長さに関する多くの詳細については。ですぐに最大値に達しますGET

POST現在、これらすべてのセキュリティ問題は、代わりに を使用するだけでは解決できずGET、サーバー側のコードでさらに努力する必要があります。しかし、最初のステップは適切な方法を使用することです。

于 2013-05-13T08:25:19.873 に答える