あることを検証するプロセスのことです。以上送信することで実行されます。セッション管理とは、サーバーがエンティティとのやり取りの進行状態を把握するプロセスです。これはサーバーがトランザクション中の後続のリクエストにどのように反応するかを決めるために必要です。リクエストの送受信時にクライアントとサーバーの間で受け渡しされます。セッションはユーザーごとに固有なものとして管理し、外部からは予測困難なものにする必要があります。大文字小文字を区別しないようにします。ユーザー「smith」とユーザー「Smith」は、同じユーザーを表すようにします。して使用されています。ユーザーごとに一意になる優れたメカニズムです。アプリケーションは、電子メールアドレスの形式について誤解しており、電子メールアドレスを正しく取り扱っていません。次のような性質を持つ電子メールアドレスは、完全に有効であることに注意してください。文字より左側の部分のことです。文字より右側部分のことで、ゼロ個以上のラベルがピリオドで結合された形になっています。電子メールアドレスは、公開データと見なす必要がある点に注意してください。高いセキュリティが要求されるアプリケーションでは、ユーザー定義の公開データを使わずにアプリケーション側でユーザー名を割り当て、外部からはわからないようにすることでしょう。アプリケーションでは、計算コストが高く不正確な正規表現式を使って電子メールアドレスを検証しています。最近の状勢変化により、正規表現がマッチしないケースが増加することでしょう。以下のような原因が考えられます。従うと、電子メールアドレスの検証に関するベストプラクティスは次のようになります。オクテットを超えていないことを確かめるアドレスが配達可能であることを確かめるアドレスが配達可能であることを確かめるには、ユーザーに電子メールを送信して、ユーザーが受信を確認する操作を行ったことをチェックする以外に方法はありません。これは、電子メールアドレスが有効であり配達可能であることを確認するだけでなく、ユーザーがメールボックスにアクセスしたことと、そのメールボックスの使用が認可されている可能性が高いことを示す、肯定応答を得ることにもなります。このメールボックスに他のユーザーがアクセスできないという意味にはなりません。ユーザーが使い捨てメールアドレスを生成するサービスを使用している場合です。電子メールアドレスのローカル部は、実際には大文字小文字が区別されるため、電子メールアドレスを正確に保存して比較することが重要になります。電子メールアドレスを正規化する場合、小文字に変換するのはドメイン部のみとすべきです。残念なことに、これが行われると、入力の正規化とユーザーの意図に正確に合わせることが困難になります。文字のみを大文字化したものを受け入れることは妥当なことですが、その場合は次のようにすることが重要です。ユーザー検証で提示され検証されたユーザー部を保存します。次のように比較を実行します。認証にパスワードを使用する場合、パスワード強度が主な懸案事項になります。パスワードポリシーがあると、手動でも自動化された方法でもパスワードの推測が困難になります。次に示す特性によって、強力なパスワードを定義します。警告これ以降のアドバイスには、議論の余地があります。パスワードの長さパスワードを長くするほど、文字の組み合わせが多くなり、攻撃者による推測が困難になります。パスワードの最小の長さは、アプリケーションで強制する必要があります。一定の長さ以上のパスワードを使うよう強制すると、パスワードを覚えられないユーザーが出てくるかもしれません。設定するようにユーザーに促す必要があります。通常、パスフレーズはパスワードよりも長くなりますが、パスワードよりも覚えやすくなります。最大パスワード長に、短すぎる設定を行ってはいけません。すると、ユーザーがパスフレーズを作成できなくなります。文字よりも短いパスフレーズが、小文字のラテン文字のみで構成されている場合は、弱いパスフレーズと見なされます。パスワードの複雑さアプリケーションでは、パスワードが簡単に推測されないようにするために、パスワードの複雑さに関するルールを強制する必要があります。使用できるようにする必要があります。当然ながらパスワードは、複雑さを増すために大文字小文字を区別する必要があります。パスワードの大文字小文字が区別されていないシステムを見かけることがありますが、多くの場合、パスワードの大文字小文字を区別しない旧式のメインフレームなど、従来のシステムに関わる問題が原因です。パスワード変更のメカニズムでは、アプリケーションとユーザー数に適った、最小レベルの複雑さを要求する必要があります。つを満たしている必要があります。許容されません)パスワードのトポロジよく使用されるパスワードのトポロジを禁止します。異なるユーザーのパスワードは異なるトポロジとなるように強制します。パスワードを変更する際には、最小限のトポロジの変更を要求します。追加情報ユーザーが入力したすべての文字を、実際にパスワードに含めること。文字に切り詰められる)。これは、通常、すべてのパスワード入力フィールドの長さをパスワードの最大長と完全に同じ長さに設定することで対処します。文字程度の短さの場合は、特に重要なことです。複雑なパスワードポリシーをアプリケーションで要求するときには、そのポリシーの内容は理解しやすいものである必要があります。要求するポリシーは、パスワード変更ページで提示する必要があります。許容される特殊文字は、ユーザーにわかるように、一覧表示します。推奨事項:ユーザーが入力した新しいパスワードが複雑さポリシーをどの程度満たしているか表示するとよい。回目のコピーが最初のものと一致するまで、送信ボタンを無効にしておくべきです。することで、ユーザーが複雑さポリシーを理解しこのポリシーに従うことが容易になります。動作とは別に、ユーザーがパスワード変更のリクエストを送信したときには、次のようにするとよいでしょう。新しいパスワードが複雑さポリシーに準拠していない場合は、準拠していないルールをエラーメッセージで説明します。このとき、新しいパスワードが準拠していない最初のルールだけを示すのではなく、準拠していないルールをすべて示します。一般に、アプリケーションは、ユーザーがパスワードを忘れたときにも、そのユーザーが自分のアカウントにアクセスできるようにするメカニズムを備えています。この機能の詳細については、「パスワードを忘れた場合に関するチートシート」を参照してください。セキュアな方法によるパスワードの保存アプリケーションにとって、適切な暗号化技法を使用してパスワードを保管することは重要なことです。この機能の詳細については、「パスワードストレージに関するチートシート」を参照してください。強力なトランスポートを通じてのみとする必要があります。強力なトランスポートを通じて提示する必要があります。強力なトランスポートを使用していない場合、攻撃者は、ログインフォームの動作を変更して、ユーザーの認証情報を任意の宛先に送信させる可能性があります。取得して、ユーザーの認証済みのセッションを侵害できるようになります。実行する際には、アカウントの資格情報を要求することが重要です。攻撃によって機密のトランザクションを実行できるようになる可能性があります。盗んでユーザーのセッションを乗っ取る可能性もあります。ログオンまたはトランザクションの処理に複数の認証要素を使用します。クライアント側マルウェアなどの攻撃に対抗する際の要になり得ます。適したいくつかのハードウェアトークンが市場で入手できます。認証と呼ばれることもあり、ブラウザーとサーバーの両方で構成されます。照らし合わせて検証することでユーザーを認証できます。これを行うには、サーバーが特定のユーザー専用にサブジェクトに値を割り当てた証明書をユーザーに提供する必要があります。この値により、ユーザーが特定できます。以下の場合に、これが良策になります。サイトに、この方法を使用することは良策ではありません。サイトにこれを実装することは、良策とはいえません。クライアント認証を組み合わせての使用を検討するのが賢明です。詳細については、次を参照してください。パスワードを列挙する目的で使用されることがあります。パスワードのどちらに間違いがあっても、一般的なエラーメッセージで応答する必要があります。既存のアカウントの状態について示してもいけません。「ログインに失敗しました。「ログインに失敗しました。「ログインに失敗しました。「ログインに失敗しました。暗示することもありません。エラーコードを返すことがあります。応答は異なることがあり、それによってアカウントが有効であるかどうかに関する情報が漏れる可能性があります。攻撃者がパスワードを推測できるときに、失敗した認証の試行回数でアカウントを無効化しないと、攻撃者はアカウントに侵入するまでブルートフォース攻撃を続けられるようになります。アプリケーションに自動的なブルートフォース攻撃やパスワード推測攻撃を仕掛けることは、難しいことではありません。パスワードロックアウトのメカニズムを採用して、失敗したログイン試行が所定回数まで行われたときには、アカウントをロックアウトする必要があります。パスワードロックアウトのメカニズムには、論理的な弱点があります。既知のアカウント名に対して多数の認証の試行を開始する攻撃者は、複数のユーザーアカウントをまとめて閉鎖するという成果を得てしまいます。アカウントをロックアウトすることが合理的な戦略といえます。これによって攻撃者の動きを大幅に鈍らせて、正当なユーザーにはアカウントを自動的に再開できるようになります。多要素認証は、ブルートフォース攻撃の非常に強力な抑止力になります。これは、資格情報が動く標的であるためです。多要素が実装されていてアクティブな状態のときには、アカウントのロックアウトは必要なくなるでしょう。パスワードを必要としない認証プロトコルの使用ユーザーとパスワードの組み合わせによる認証と多要素認証の使用は、一般にセキュアであると考えられますが、これが最善策ではなく、安全でさえないと考えられるユースケースがあります。アプリケーションへの接続を求める場合が挙げられます。これが行われると、サードパーティのアプリケーションがユーザーとパスワードの組み合わせを保存できるようになるため、安全だと考えられなくなります。このようになると、攻撃対象領域がサードパーティの手の内に広がり、自分の制御が及ばなくなります。したユースケースに対して、ユーザーのデータを攻撃者に公開しない認証プロトコルが複数存在します。アプリケーションがサーバーをユーザーとして認証できるプロトコルのことです。プロバイダーの役割を果たすサードパーティのサーバーは必要とされません。このプロトコルでは、サーバーが生成したトークンを使用し、最も多く発生する認可のフローの方法を提供して、モバイルアプリケーションなどのクライアントから、どのユーザーがサービスを使用しているかをサーバーに通知できるようにします。使用と実装が推奨されます。セッション固定に対する脆弱性が見つかっています。使用され、実装されています。依存しないため、リスクの高いトランザクションに適しています。プロバイダーを使用します。サイトで同じユーザーになれます。サイトにパスワードを提示する必要はありません。広く採用されています。セキュアであり、多くの場合に優れた選択肢であると見なされています。匹敵するものと見なされています。このバージョンは、機能の完全性が非常に高く、強力なセキュリティを提供します。ベースである点と、高い柔軟性を備えている点が異なります。データを送信するブラウザーのリダイレクトに基づいています。プロバイダーから開始されることもあります。これにより、ユーザーは何もすることなく、認証された状態で異なるポータル間を移動できるようになり、プロセスが透過的になります。企業アプリケーションに多く採用されています。要求される高度な基準に達していないのです)。プロバイダーとし使用していることもあります。認証がシングルサインオン実装に優先される方法です。プロトコルを作成しました。目の要素を追加できます。レスポンスモデルに基づいています。デバイスに存在する既存のセキュリティテクノロジーを認証に利用します。これらのデバイス機能を共通の認証フレームワークにプラグイン接続するように設計されています。アプリケーションのどちらでも機能します。使用してパスワードベースの認証を強化します。トークンは、暗号の認証キーを格納し、署名の際には使用します。番目の要素として使用できます。アプリケーションで機能します。使用することで、フィッシング防止を実現します。セッション管理の一般的なガイドラインセッション管理は、認証に直接関連します。OWASP』にあった「セッション管理の一般的なガイドライン」は、『セッション管理に関するチートシート』に統合されています。パスワードの記憶機能や入力機能、異なるサイトに対するランダムパスワードの生成機能などが組み込まれています。アプリケーションでは以下のような点に注意するとよいでしょう。OWASPDisclaimers。