ユーザーが自分自身と新しく購入した製品を登録できる Web ページを作成しています。
そのため、ページは最初、シリアル番号と社会保障番号の 2 つの入力フィールドで構成されています。これらの値は、2 つの異なる API に対して検証されます。2 番目の API 呼び出しは呼び出しごとに費用がかかるため、ユーザーがこれらの API 呼び出しを悪用することはできません。ユーザーがすべてのシリアル番号にアクセスできないように、もう 1 つの番号も何らかの方法で制限する必要があります。
そして、この Web ページを ajax で作成して、優れたユーザー エクスペリエンスを実現したいと考えました。そのため、jQuery ajax 関数を使用して、ページのコード ビハインドに配置した webmethods を呼び出しています。
次に、各 Web メソッドは、資格情報を使用して一致する API を呼び出します。しかし、これは、誰でもクライアント側のスクリプトを編集して、API に対して必要な回数の呼び出しを行うことができるということではないでしょうか?
私はこれを防ぐことができる必要があります。どうすればそれを行うことができますか?ユーザーが挿入したスクリプトによって通話が開始されたのではないことを確認できますか?
別の質問ですが、両方の ajax 呼び出しが正常に返されたことをクライアント側で検証するにはどうすればよいですか? ajax 呼び出しが 1 つしかない場合は簡単です。私は成功のために何かをするだけです.ajax関数の一部です。入力フィールドの横にすべてのチェックマークが表示されていることを確認できましたが、これはユーザーによって簡単に改ざんされる可能性があります。これを行う良い方法は何ですか?両方の呼び出しが成功したらボタンを有効にして、ユーザーが API の結果を確認できるようにしたいと考えています。
[WebMethod]
public static string CheckSerialNumber(String _input)
{
string result = null;
var client = new CheckSerialNumberClient(); //A service reference to the API
try
{
//make the API call.
result = client.checkSerialNumber(_input);
}
catch (Exception)
{
result = "An error occured";
}
return result;
}
[WebMethod]
public static string GetCustomerInfo(String _input)
{
string result = null;
var client = new CustomerInfoClient(); //A service reference to the API
try
{
//make the API call.
result = client.getCustomerInfo(_input, myCredentials); //credentials is so that the company that has the API can charge us for each call.
}
catch (Exception)
{
result = "An error occured";
}
return result;
}
jQuery、私はこれを機能させましたが、表示することもできます。これは、入力が正規表現に対して検証された後です。
$.ajax({
type: "POST",
url: "/Default.aspx/CheckSerialNumber",
data: ...
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
return true;
}