登録ページに配置するために、サードパーティから提供されたフォームがあります。問題なく動作しますが、スパムを送信するボットの影響を非常に受けやすいようです。キャプチャを追加しようとしていますが、検証が開始される前にフォームが投稿されています。これは asp.net Web フォーム C# 4.0 にあります。
フォームはこんな感じ
<form method="post" name="upsideContactUsForm-1343676638998" action="https://3rdPartySite" id="form173" runat="server">
<input id="field0" value="" type="text" name="email" />
<!-- ..Other fields like first name, last name, etc -->
<input type="submit", value="submit"></input>
<script src="https://3rdPartySiteValidation.js" type="text/javascript"></script>
<script type="text/javascript">
var field0 = new LiveValidation("field0", { validMessage: "", onlyOnBlur: true });
field0.add(Validate.Presence, { failureMessage: "This field is required" });
field0.add(Validate.Email, { failureMessage: "Please enter a valid email address" });
//..Validation rules for the fields
</script>
</form>
送信ボタンを asp:button に置き換え、警告ラベル付きのキャプチャを追加しました。このようなサーバー側をチェックして、ページの起動を防ぐことができるかどうかを確認していますが、うまくいきません。
protected void Submit_Click(object sender, EventArgs e) {
if (Page.IsValid)
{
CaptchaMsg.Text = "Your response is correct!";
}
else
{
CaptchaMsg.Text = "Your response is incorrect!";
}
}
キャプチャに何も入力せずに送信ボタンをクリックすると、フォームが投稿され、フォーム アクションで設定されたページにリダイレクトされます。これは、フォームを投稿しているときに起こると予想していたようなものですが、これを回避するためにどの方向に進むべきかわかりません. 最初にリダイレクトされるパススルー ページを追加することもできますが、それでは不十分なようです。キャプチャに ajax で応答することも検討しましたが、javascript が無効になっていると機能しません。
助言がありますか?