web-dev-qa-db-ja.com

ユーザー名とパスワードがカスタムヘッダーで渡される

ユーザー名とパスワードを、https経由のWebサービス/ WebアプリケーションPostリクエストの2つの個別のカスタムヘッダータグで渡すことは安全ですか?.

From Authorizationヘッダーを使用する場合とどう違うのですか?.

どちらがより安全で、ヘッダーまたはPOSTボディリクエストで資格情報を渡すことの違いは何ですか?

Canは、カスタムヘッダーで機密情報を渡しても安全と見なされます。

1
Dee

Authorizationヘッダーは、情報開示に関してリバースプロキシ、IDS/IPS、ファイアウォール、Webキャッシュ、Webサーバーなどによって特別に扱われることがよくあります。ここでの主な問題は、アーキテクチャがHTTPSで実行されている単一のWebサーバーよりも複雑な場合、中間システムによってヘッダーがログに記録またはキャッシュされる可能性があることです。

Apacheまたはnginxサーバーのような単純なものを特別なロギングなしで実行しているだけの場合、代替ヘッダーを使用してセキュリティの問題を考慮することはありません。このような設定では、AuthorizationまたはCookieヘッダーを使用するのとセキュリティの点で違いはありません。

一般に、機密データをPOSTリクエストではなくヘッダーで渡すオプションがある場合は、そのようにします。POSTボディは、デバッグシナリオ。ブラウザの自動プロンプトの利点として、閲覧履歴ボタン(戻る、進む)を使用してフォームが誤って再送信されるのを防ぐことができますが、認証ヘッダーを使用したGETではこのメカニズムはトリガーされません。

2
Polynomial

適切に HTTPSを使用する場合、カスタムヘッダーとPOSTフィールドの間に違いはありません。HTTPSによって提供される暗号化は、両方に対して同じ方法でトラフィック全体を保護します。

しかし、それは主に使用されるものに固執する方が良いです。承認ヘッダーは、後でコードを扱うすべての開発者に理解され、カスタムヘッダーには時間がかかります。十分に文書化していない場合、貧しい開発者は、ユーザーを認証する方法を理解するために多くのコードを読む必要があります。 usernameおよびpasswordフィールドをPOST 'edすることも簡単に理解できます。

したがって、両方のアプローチが基本的に同じセキュリティを持っている場合でも、承認ヘッダーまたはPOST認証を使用します。

0
ThoriumBR