Pular para o conteúdo

API do Filtro de Spam

O Filtro de Spam da ALTCHA é um recurso exclusivo de detecção de spam que permite que você classifique textos e outras informações, permitindo que você filtre spam e identifique mensagens legítimas. Funciona analisando informações textuais e outras, avaliando vários fatores para fornecer uma pontuação numérica indicando se a mensagem parece legítima ou é provavelmente spam.

O Filtro de Spam utiliza processamento de linguagem natural e aprendizado de máquina para analisar dados de forma rápida e confiável. Para resultados ótimos, recomenda-se usar idiomas com suporte completo. Embora outros idiomas também possam ser analisados, alguns fatores de pontuação podem não estar disponíveis.

A privacidade e a conformidade com o GDPR são primordiais para todos os serviços da ALTCHA. O Filtro de Spam respeita a privacidade do usuário e garante a conformidade com o GDPR para proteger tanto você quanto seus clientes. Saiba mais sobre considerações de privacidade.

Casos de Uso

  • Detecção abrangente de spam: Detecte rapidamente e de forma confiável o spam enviado por meio de formulários online ou APIs, analisando texto e validando fatores como endereços de e-mail e endereços IP.
  • Validação de endereço de e-mail: Detecte endereços de e-mail falsos ou suspeitos e distinga entre e-mails “gratuitos” e “corporativos”.
  • Validação de endereço IP: Identifique se um endereço IP está associado a um data center, proxy ou saída do TOR, e verifique contra listas de bloqueio para atividades maliciosas.
  • Firewall de segurança: Proteja-se contra tentativas comuns de injeção de HTML e SQL em texto, além de identificar atacantes conhecidos por meio de extensas listas de bloqueio.
  • Detecção de idioma: Detecte automaticamente até 160 idiomas a partir do texto fornecido.
  • Geo-localização: Detecte de forma confiável a geo-localização do usuário, idiomas comumente falados, moeda e outras informações a partir de endereços IP ou fusos horários do usuário.
  • Geo-cercamento: Bloqueie efetivamente certos países, regiões ou continentes de acessar ou usar seu site ou APIs.

Experimente!

Teste a API do Filtro de Spam com sua própria entrada usando o formulário abaixo.

Filtro de Spam da ALTCHA

Teste o Filtro de Spam por si mesmo enviando o formulário com sua própria entrada.

  • Use diferentes idiomas
  • Inclua palavras obscenas ou comuns de spam
  • Use um endereço de e-mail real e um com aparência suspeita
  • Explore qualquer uma das regras de texto
Ao enviar o formulário, você concorda e aceita nossa política de privacidade. Seu endereço IP e geo-localização serão detectados automaticamente.

Autorização

O acesso à API requer uma Chave de API. Consulte a documentação de autorização da API para obter mais informações.

Uso com o Widget

Se estiver usando o widget da ALTCHA como proteção Captcha, integrar o Filtro de Spam diretamente em seu site é simples. O formulário será classificado durante a verificação da ALTCHA, antes que os dados cheguem ao seu servidor.

Para utilizar o Filtro de Spam, adicione o atributo spamfilter ao widget (versão 0.3+ necessária):

<altcha-widget
challengeurl="https://eu.altcha.org/api/v1/challenge?apiKey=ckey_..."
spamfilter
></altcha-widget>

Para informações adicionais e alterações necessárias no servidor, consulte a documentação.

Modos de Operação

O Filtro de Spam oferece várias funcionalidades avançadas para a detecção de spam. Dependendo do seu caso de uso e do público-alvo, algumas funcionalidades, como a classificação de campos de texto, podem ser invasivas para a privacidade. Felizmente, você pode configurar facilmente o comportamento do Filtro de Spam e definir o modo de verificação.

Modo Padrão

No modo padrão, o Filtro de Spam realiza:

  • Classificação de texto em todos os campos de texto do formulário
  • Verificação do endereço de e-mail
  • Verificação de IP
  • Verificação de idioma

Modo de Endereço IP

Defina spamfilter="ipAddress" para verificar apenas o endereço IP e o fuso horário do usuário. Este modo não envia campos de texto nem endereços de e-mail, tornando-o uma opção mais amigável à privacidade que evita o envio de informações pessoais identificáveis.

<altcha-widget
challengeurl="https://eu.altcha.org/api/v1/challenge?apiKey=ckey_..."
spamfilter="ipAddress"
></altcha-widget>

Embora o Modo de Endereço IP não possa detectar spam gerado por humanos, ele identifica efetivamente bots por meio de uma verificação abrangente de endereços IP.

Modos Personalizados

Você pode personalizar ainda mais o comportamento do Filtro de Spam usando configuração programática. Forneça spamfilter como um objeto com configurações individuais adaptadas às suas necessidades.

Classificação de Texto

A API do Filtro de Spam analisa o texto fornecido, buscando padrões comuns vistos em spam. Ele pontua vários fatores e fornece uma pontuação cumulativa indicando a qualidade do texto.

Ele pode fornecer insights valiosos sobre o texto:

  • Detecção de idioma
  • Avaliação geral de sentimentos
  • Identificação de palavras de spam e palavrões
  • Detecção de URLs
  • Detecção de injeções de HTML e JavaScript prejudiciais
  • Identificação de possíveis injeções de SQL

Consulte as regras de texto para mais detalhes.

Suporte a Idiomas

O Filtro de Spam atualmente suporta a classificação de texto nos idiomas listados abaixo. Para textos em idiomas não incluídos nesta lista, será utilizado o classificador padrão em inglês. Isso oferece uma funcionalidade básica para a detecção de spam, mesmo para idiomas não suportados.

  • Búlgaro
  • Checo
  • Dinamarquês
  • Holandês
  • Inglês
  • Finlandês
  • Francês
  • Alemão
  • Grego
  • Húngaro
  • Italiano
  • Norueguês
  • Polonês
  • Português
  • Romeno
  • Russo
  • Eslovaco
  • Espanhol
  • Sueco

Verificação de E-mail

A API pode verificar endereços de e-mail, verificando sua legitimidade. Uma pontuação mais alta indica um endereço de e-mail suspeito ou falso.

  • Verificação de registro DNS
  • Detecção de provedores de e-mail gratuitos
  • Verificação de listas de bloqueio para spammers conhecidos

Consulte as regras de e-mail para mais detalhes.

Verificação de Endereço IP

Verificar os endereços IP dos usuários é crucial para detectar abusos. A API identifica proxies, saídas do TOR, data centers e endereços IP maliciosos conhecidos.

  • Detecção de geo-localização
  • Geo-cercamento
  • Identificação de data centers, proxies, VPNs e saídas do TOR
  • Verificação de listas de bloqueio para atores maliciosos conhecidos

Consulte as regras de endereço IP para mais detalhes.

Verificação de Fuso Horário

A detecção do fuso horário do usuário via o navegador fornece informações confiáveis de geo-localização. A API resolve fuso horários para países específicos.

  • Detecção de geo-localização
  • Geo-cercamento

Consulte as regras de fuso horário para mais detalhes.

É possível recuperar o fuso horário do IANA do usuário usando o seguinte código JavaScript:

const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;

Ponto de Extremidade da API

Referência da API

Para classificar seus dados, utilize o ponto de extremidade /api/v1/classify:

POST https://eu.altcha.org/api/v1/classify?apiKey=ckey_...
Content-Type: application/json
Referer: https://example.com/
{
"text": "Spam ou não spam, eis a questão."
}

Solicitação

Para usar a API, envie um corpo codificado em JSON no seguinte formato:

{
"email": "@gmail.com",
"ipAddress": "auto",
"text": "Seu texto aqui...",
"timeZone": "Europe/London"
}

Todas as propriedades da solicitação são opcionais:

  • blockedCountries - Uma matriz de códigos de país (ISO 3166 alfa-2) que você quer bloquear.
  • classifier - Forçar um classificador específico. Classificadores suportados: cs, en, de, es, fr, it, nl, pt.
  • disableRules - Uma matriz de regras a desativar. Por exemplo, ["text.EMOJI"].
  • email - Um endereço de email para verificar. Para respeitar a privacidade do usuário, envie apenas @<dominio>.
  • expectedCountries - Uma matriz de códigos de país (ISO 3166 alfa-2) de onde você espera que o usuário seja.
  • expectedLanguages - Uma matriz de códigos de idioma (ISO 639 alfa-2) nos quais você espera que o texto esteja escrito.
  • fields - Envie campos de texto como um objeto chave-valor. Pode ser usado em vez de text (a propriedade text tem precedência).
  • ipAddress - O endereço IP do usuário. Use auto para usar o IP do chamador. Tanto IPv4 quanto IPv6 são suportados.
  • text - O texto a classificar. Uma matriz de strings também pode ser enviada.
  • timeZone - Fuso horário do usuário no formato IANA, fornecido pelo navegador.

Resposta

A API responde com uma classificação codificada em JSON de seus dados:

{
"classification": "GOOD",
"country": {
"code": "gb",
"name": "United Kingdom",
"native": "United Kingdom",
"phone": [
44
],
"continent": "eu",
"capital": "London",
"currency": [
"GBP"
],
"languages": [
"en"
]
},
"ipAddress": {
"city": "London",
"country": "gb",
"ipAddress": "10.0.0.1",
"rules": { ... },
"score": 0.5,
"zip": null
},
"reasons": [
"ipAddress.PROXY"
],
"score": 0.5,
"text": {
"classifier": "en",
"detectedLanguage": "en",
"rules": { ... },
"score": 0
}
}

O resultado é determinado por propriedades na resposta:

  • classification - Pode ser GOOD (< 1), NEUTRAL (1…2), ou BAD (> 2), indicando pontuação geral.
  • score - A pontuação numérica geral. Uma pontuação > 2 indica spam.
  • reasons - Uma série de regras correspondentes, classificadas por pontuação.

Regras de Pontuação

A API de classificação avalia várias regras de pontuação para cada atributo fornecido. As regras individuais e suas pontuações são retornadas pela API na resposta. A pontuação geral resultante é a soma de todas as pontuações das regras.

Existem 4 categorias distintas de regras de pontuação, com base na entrada fornecida:

Regras de Texto

O texto é analisado com as seguintes regras usando processamento de linguagem natural e aprendizado de máquina. Essas regras são projetadas para detectar padrões comuns usados em mensagens não solicitadas, como spam e promoção, mas também detectar palavrões e conteúdo prejudicial.

CAPITALIZATION

Esta regra encontra palavras EM MAIÚSCULAS no texto. A utilização de maiúsculas sugere uma mensagem não solicitada.

  • Significância: baixa
  • Pontuação: n × 0.25 onde n é o número de ocorrências.

CURRENCY

Esta regra encontra todos os tokens que correspondem a formatos de preço ou moeda comuns. Preços no texto indicam uma oferta comercial.

  • Significância: baixa
  • Pontuação: n × 0.25 onde n é o número de ocorrências.

EMOJI

Esta regra encontra todos os caracteres de emoji. O uso excessivo de emojis é considerado prejudicial.

  • Significância: baixa
  • Pontuação: n × 0.25 onde n é o número de ocorrências.

EXCLAMATION

Esta regra encontra todos os caracteres de exclamação. O uso excessivo de exclamações é considerado prejudicial.

  • Significância: baixa
  • Pontuação: n × 0.25 onde n é o número de ocorrências.

HASH_TAGS

Esta regra encontra todas as #hashtags. O uso excessivo de hashtags é considerado prejudicial.

  • Significância: baixa
  • Pontuação: n × 0.25 onde n é o número de ocorrências.

HTML

Esta regra encontra todas as tags HTML. O uso de HTML é considerado prejudicial.

  • Significância: média
  • Pontuação: n × 1 onde n é o número de ocorrências.

HTML_INJECTION

Esta regra encontra todas as tags HTML prejudiciais, como <script>, <style> e <iframe>, que indicam uma tentativa maliciosa.

  • Significância: alta
  • Pontuação: n × 5 onde n é o número de ocorrências.

NUMBERS_ONLY

Esta regra corresponde se todo o texto consistir apenas em números e indicações de teclas aleatórias.

  • Significância: média
  • Pontuação: 0 | 2

PROFANITY

Esta regra encontra palavrões comumente usados no texto.

  • Significância: alta
  • Pontuação: n × x onde n é o número de ocorrências e x é uma pontuação de palavra variável.

RANDOM_CHARS

Esta regra encontra sequências de caracteres que parecem se ajustar a teclas aleatórias.

  • Significância: média
  • Pontuação: n × 1 onde n é o número de ocorrências.

SENTIMENT

Esta regra avalia o sentimento geral do texto. Sentimento ruim ou prejudicial aumenta a pontuação.

  • Significância: média
  • Pontuação: 0 | 1

SHORT_TEXT

Esta regra corresponde se o texto for muito curto, abaixo de 40 caracteres.

  • Significância: média
  • Pontuação: 0 | 1

SPAM_WORDS

Esta regra encontra palavras de spam comumente usadas no texto.

  • Significância: média
  • Pontuação: n × x onde n é o número de ocorrências e x é uma pontuação de palavra variável.

SPECIAL_CHARS

Esta regra encontra sequências não alfanuméricas com mais de 5 caracteres.

  • Significância: média
  • Pontuação: n × 1 onde n é o número de ocorrências.

SQL_INJECTION

Esta regra encontra possíveis tentativas de injeção de SQL, como 1; drop table ....

  • Significância: alta
  • Pontuação: n × 5 onde n é o número de ocorrências.

UNEXPECTED_LANGUAGE

Esta regra corresponde se o idioma detectado não corresponder a expectedLanguages.

  • Significância: alta
  • Pontuação: 0 | 5

UNKNOWN_LANGUAGE

Esta regra corresponde se o idioma não puder ser detectado no texto.

  • Significância: média
  • Pontuação: 0 | 1

URL

Esta regra encontra endereços de URL no texto. O uso excessivo de URLs é considerado prejudicial.

  • Significância: baixa
  • Pontuação: n × 0.5 onde n é o número de ocorrências.

Regras de E-mail

Se você fornecer um endereço de email para a API do classificador, ele será analisado com as seguintes regras projetadas para validar o endereço. Ele pode dizer se o email é um “email gratuito”, como Gmail, ou se ele realmente pode receber mensagens.

FREE_PROVIDER

Esta regra corresponde se o nome de domínio do endereço de email for reconhecido como um provedor de email gratuito conhecido, como o Gmail. Uma pontuação de 0 indica um email “profissional” com um nome de domínio personalizado, e uma pontuação de 0.5 indica um provedor de email gratuito de uma lista dos provedores mais populares e “confiáveis”.

  • Significância: baixa
  • Pontuação: 0 | 0.5 | 1

DMARC

Esta regra verifica o DNS para um registro _dmarc. e corresponde se o registro não estiver configurado. A ausência de um registro DMARC indica que o domínio está mal configurado.

  • Significância: baixa
  • Pontuação: 0 | 0.5

MX

Esta regra verifica o DNS para um registro MX e corresponde se o registro não estiver configurado. A ausência de um registro MX indica que o endereço de email não é válido porque o email não pode ser entregue.

  • Significância: alta
  • Pontuação: 0 | 5

REPORTED

Esta regra corresponde se o end

ereço de email for encontrado em uma das listas de bloqueio de spammers conhecidos em fóruns.

  • Significância: alta
  • Pontuação: 0 | 5

INVALID

Esta regra corresponde se o formato do endereço de email for inválido, como um nome de domínio inválido.

  • Significância: alta
  • Pontuação: 0 | 5

Regras de Endereço IP

Se você fornecer um ipAddress para a API do classificador, ele será analisado com as seguintes regras projetadas para avaliar o quão prejudicial é o usuário. Ele informará se o usuário está usando um servidor proxy ou TOR, se o endereço IP está localizado em um datacenter ou se é um endereço IP malicioso conhecido. Você pode usar a avaliação de IP para bloqueio geográfico.

BLOCKED_COUNTRY

Esta regra corresponde se a localização geográfica detectada corresponder a blockedCountries.

  • Significância: alta
  • Pontuação: 0 | 5

HOSTING

Esta regra corresponde se o endereço IP for conhecido por estar localizado em um datacenter.

  • Significância: média
  • Pontuação: 0 | 2

MALICIOUS

Esta regra corresponde se o endereço IP for encontrado em uma das listas de bloqueio de atores maliciosos conhecidos.

  • Significância: alta
  • Pontuação: 0 | 5

PROXY

Esta regra corresponde se o endereço IP for conhecido por ser um servidor proxy, como um VPN.

  • Significância: baixa
  • Pontuação: 0 | 0.5

TOR

Esta regra corresponde se o endereço IP for conhecido por ser uma saída TOR.

  • Significância: média
  • Pontuação: 0 | 1

UNEXPECTED_COUNTRY

Esta regra corresponde se a localização geográfica detectada não corresponder a expectedCountries.

  • Significância: média
  • Pontuação: 0 | 1

Regras de Fuso Horário

O fuso horário do usuário (fornecido pelo navegador) é avaliado para detectar uma localização geográfica precisa do usuário. Isso muitas vezes é mais preciso do que o endereço IP devido à imprecisão do conjunto de dados de IP e ao uso de proxies.

BLOCKED_COUNTRY

Esta regra corresponde se a localização geográfica detectada corresponder a blockedCountries.

  • Significância: alta
  • Pontuação: 0 | 5

UNEXPECTED_COUNTRY

Esta regra corresponde se a localização geográfica detectada não corresponder a expectedCountries.

  • Significância: média
  • Pontuação: 0 | 1