Моя борьба со спамом

антиспам

Заметил я как-то, что на мой уютный бложек боты повадились ходить и регистрироваться.

Боты эти не только регистрируются но и пытаются проверить свою почту. Куда уходят письма не знаю. Приходял ли они куда-то не известно. Тем не менее мне это не нравится. Да и адрес отправителя скорее всего уже в базе спамеров.

Начал я гуглить и нашел вот такой сервис. А интересен он тем, что у них есть API для проверки email и IP на предмет плохой активности в сети. Внедрение этого сервиса мою проблему решило.

Вот так вот все просто:

private async Task<bool> CheckEmailToSpamAsync(string email, string ip)
{
    try
    {
        var query = $"http://api.stopforumspam.org/api?email={UrlEncoder.Default.Encode(email.Trim())}&ip={ip}&json";
        using (var client = new HttpClient())
        {
            var json = await client.GetStringAsync(query);
            var response = JsonConvert.DeserializeObject<JObject>(json);
            if (response["email"]["appears"].Value<int>() > 0 &&
                response["email"]["confidence"].Value<double>() > 70.0)
            {
                return false;
            }
            if (response["ip"]["appears"].Value<int>() > 0 &&
                response["ip"]["confidence"].Value<double>() > 70.0)
            {
                return false;
            }
            return true;
        }
    }
    catch
    {
        return true;
    }
}