私は外向きのWebサービスを持っていますが、有効なクライアントからの要求が確実に行われるように検証システムを生成する必要があります。 Webサービスのクライアント固有の確認番号を生成する
はのは、次のように、元のWebサービスが定義されているとしましょう:[OperationContract]
public void Service.RequestMethod (string clientId, int reqNumber,
string reqText)
{
// do stuff with the parameters
}
私は、要求が実際にclientId
パラメータで指定されたクライアントから来たことを確認します。
私の現在の計画は、メソッドシグネチャに別のパラメータを追加して、チェックサムを並べ替えることです。
[OperationContract]
public void Service.RequestMethod (string clientId, int reqNumber,
string reqText, string reqChecksum)
{
// verify reqChecksum, then
// do stuff with the parameters
}
承認されたクライアントによってチェックサムが計算されたことを確認する関数が必要です。 reqNumber
およびreqText
パラメータ、およびクライアントとサーバーの両方が認識するクライアント固有の「パスワード」で計算する必要があります。
効果で、それは次のようになります。
private bool VerifyChecksum(int reqNumber, string reqText,
string clientPassword, string reqChecksum)
{
// hash reqNumber, reqTxt, and clientPassword
// ensure it matches reqChecksum
}
誰もがこのハッシュ関数または全体としてのモデルのための任意の提案を持っていますか?
メッセージ固有、クライアント固有、推測しにくい(高いエントロピー)必要があります。
私はそれが特定のものと呼ばれると思っていました。ありがとう。 – Damovisa