次の方法でログインを処理するアプリケーションを作成しようとしている場合、どのような懸念がありますか。
http://api.myApp.example/printSomething/username/password/
POST されたユーザーの詳細 (ユーザー名とパスワード) に基づく通常のログイン ページと比較して、どの程度安全ではないのでしょうか? 違いはありますか?
ありがとう
次の方法でログインを処理するアプリケーションを作成しようとしている場合、どのような懸念がありますか。
http://api.myApp.example/printSomething/username/password/
POST されたユーザーの詳細 (ユーザー名とパスワード) に基づく通常のログイン ページと比較して、どの程度安全ではないのでしょうか? 違いはありますか?
ありがとう
それをしないでください。その代わりに POST メソッドを使用します。URL で機密情報を許可しないでください。
違いは、パスワードがアドレス バーに表示されることと、ユーザーがサイトからアクセスするすべてのサイトで、ユーザーのパスワードが REFERER ヘッダーに表示されることです。
実際には、それほど大きな違いはありません。攻撃者が混乱しやすくなるだけです。
しかし、 URL はブラウザの履歴やログなどに頻繁に保存されます。つまり、ブラウザにアクセスできる (または URL にアクセスできる) 誰でも、ユーザー名と平文のパスワードを見ることができます。
アップデート:
質問のタイトルに関して、そして私の答えを明確にするために:
GET
要求と要求の両方POST
が、ブルート フォース攻撃を行うために簡単に悪用される可能性があります。を使用GET
すると、攻撃者がこれを手動で実行しやすくなりますが、ほとんどの場合、これらは自動攻撃です。つまり、アプリケーションがこれらのリクエストを実行するため、使用される HTTP メソッドはまったく無関係です。
1 つの HTTP メソッドを選択しても、ブルート フォース攻撃を防ぐことはできません。
1 つの IP からの 1 分間あたりのアクセス数を制限するなど、サーバー側でそのようなことを行う必要があります。