是的,您需要進行服務器端驗證,否則您未經身份驗證的API端點不受通過您的網站進行直接調用的保護。
的解決方案是很直盼着在這裏詳細描述: https://developers.google.com/recaptcha/docs/verify
但是,這將驗證該網站給出的g-recaptcha-response
的方法是這樣的一個非常簡單的例子:
public bool Validate(string encodedResponse)
{
if (string.IsNullOrEmpty(encodedResponse)) return false;
var secret = **your secret**;
if (string.IsNullOrEmpty(secret)) return false;
var client = new System.Net.WebClient();
var googleReply = client.DownloadString(
$"https://www.google.com/recaptcha/api/siteverify?secret={secret}&response={encodedResponse}");
return JsonConvert.DeserializeObject<RecaptchaResponse>(googleReply).Success;
}
RecaptchaResponse是一個簡單的類,我們看起來像這樣:
public class RecaptchaResponse
{
[JsonProperty("success")]
public bool Success { get; set; }
[JsonProperty("error-codes")]
public IEnumerable<string> ErrorCodes { get; set; }
[JsonProperty("challenge_ts")]
public DateTime ChallengeTs { get; set; }
[JsonProperty("hostname")]
public string Hostname { get; set; }
}