Nonce を使用して Web アプリケーションのセキュリティを強化する
同じ HTTP リクエストの複数の送信に関するユーザーからの懸念に応えて、スコアリングの目的では、ノンスベースのソリューションが提案されています。 nonce は、リプレイ攻撃を防止し、データの整合性を確保するために使用できる 1 回限りの値です。
nonce を実装するにはsystem:
サーバー側
-
getNonce():
- クライアントが nonce をリクエストしています。
- ランダムを生成します安全なハッシュ関数 (SHA-512 など) を使用した nonce。
- クライアントのリクエストに関連付けられた nonce を保存します。
- nonce をclient.
-
verifyNonce():
- 検証を要求しているクライアントを識別します。
- そのクライアント用に以前に保存されたノンス。
- 計算nonce のハッシュ、クライアントが生成した counter-nonce (cnonce)、および検証対象のデータ。
- 計算されたハッシュとクライアントによって提供されたハッシュを比較します。
- true を返します。ハッシュが一致する場合、有効であることを示しますrequest.
クライアント側
-
sendData():
- サーバーから nonce を取得しますgetNonce() メソッドを使用します。
- 安全なハッシュ関数を使用して cnonce を生成します。
- nonce、cnonce、および送信するデータのハッシュを計算します。
- 送信データ、cnonce、ハッシュをserver.
-
makeRandomString():
- ランダムな文字列または数値を返します。
- A安全な実装では、mt_rand() 関数によって提供されるような高品質のランダム性が使用されます。 PHP.
- 計算に使用されるハッシュ関数は、サーバー側とクライアント側の両方で同じである必要があります。
ノンスを使用すると、リプレイを防ぐことができます各リクエストが一意であり、以前に送信されていないことを確認することで攻撃します。これにより、スコアリング システムの完全性が保護され、不当な利益を得ようとする悪意のある試みから保護されます。
以上がNonce を使用してリプレイ攻撃を防ぎ、Web アプリケーションのセキュリティを強化するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。