1. O que é a Propriedade isTrusted
A propriedade isTrusted
é um atributo booleano de eventos DOM que indica se:
- Origem - O evento foi gerado por interação genuína do usuário (true) ou programaticamente via JavaScript (false)
- Limite de Segurança - Serve como medida de segurança contra injeção de eventos sintéticos
- Somente Leitura - Não pode ser modificado através de APIs JavaScript padrão
Tipos de evento chave com esta propriedade:
- MouseEvent (cliques, movimentos)
- KeyboardEvent (pressões de tecla)
- TouchEvent (interações móveis)
- SubmitEvent (envios de formulário)
2. Como as Plataformas Detectam Eventos Sintéticos
As plataformas usam isTrusted
junto com outras heurísticas para detectar automação:
- Verificação Direta:
element.addEventListener('click', (e) => {
if (!e.isTrusted) { /* Flag as automated */ }
});
- Padrões Comportamentais:
- Eventos sequenciais irrealisticamente rápidos
- Eventos sem movimentos de mouse precedentes
- Eventos com timestamp idêntico
- Indicadores Auxiliares:
- Assinaturas de hardware ausentes (pressão do ponteiro, coordenadas da tela)
- Ausência de eventos relacionados (ex: mousedown antes do click)
- Distribuições de tempo não-humanas
- Verificação Cruzada:
- Comparando
isTrusted
com:Event.timeStamp
PointerEvent.pressure
- Consistência de
MouseEvent.screenX/Y
3. Como o FlashID Simula Eventos Confiáveis
O FlashID emprega técnicas avançadas para gerar eventos indistinguíveis de interações do usuário:
- Injeção de Eventos Nativos:
- Usa protocolos de depuração do navegador para injetar eventos no nível do SO
- Imita assinaturas de eventos de hardware (pressão, coordenadas)
- Simulação de Sequência de Eventos:
- Gera movimentos pré-evento realistas
- Mantém um tempo semelhante ao humano entre:
- Mousedown → Mouseup → Click (150-300ms)
- Keydown → Keypress → Keyup (50-120ms)
- Sincronização do Ambiente:
- Alinha eventos sintéticos com métricas de hardware reais
- Mantém consistência em:
- Reconhecimento da resolução da tela
- Perfis de aceleração do ponteiro
- Distribuições de posição de toque/clique
- Modelagem de Comportamento Dinâmico:
- Implementa micromovimentos aleatórios
- Simula tremor da mão (oscilação de 0.5-1.5px)
- Varia a pressão/tempo com base em:
- Padrões de fadiga de duração da sessão
- Posicionamento de elementos da UI
- Histórico de interação anterior
Você Também Pode Gostar