Prévia do material em texto
Discente: Heloísa Helena Lopes Alvarenga De acordo com o problema enunciado, é-nos pedido para implementar um “Captcha” de modo a aumentar a segurança nos aplicativos Web. Um “Captcha” é um teste que nos pode pedir para escrever num “input” o texto distorcido que vemos numa imagem, ou que nos pode pedir para identificar certos elementos de uma imagem (sendo estes apenas alguns exemplos). Todas as respostas que dermos serão analisadas pelo seu algoritmo de modo a concluir se o utilizador é ou não um robot (bot). Para o exemplo atual iremos escolher o “Captcha” de imagens que é visível na figura da direita. Deste modo, temos uma imagem dividida em 16 quadrantes, sendo pedido que identifiquemos os quadrantes que têm semáforos presentes. Este tipo de teste torna-se particularmente mais difícil para um robot devido ao facto de poder ser facilmente induzido em erro pela divisão da imagem em quadrantes ou mesmo pela diversidade de fotos e elementos presente. Ao clicar nas imagens do “Captcha” algumas das variáveis submetidas serão por exemplo: • Números de tentativas sem sucesso; • Quantidade de submissões do mesmo IP; • Velocidade de clique nos quadrantes; • Eficácia dos cliques. Através destas variáveis o algoritmo pode automaticamente diferenciar os utilizadores mais prováveis de serem robots dos utilizadores menos prováveis de o serem, assim, iremos utilizar uma técnica de mineração de dados denominada classificação. Por exemplo, um robot comum irá submeter várias vezes o mesmo “Captcha” sob o mesmo IP, e irá ter uma velocidade de clique bastante rápida. A classificação na mineração de dados é uma técnica comum que separa pontos de dados em diferentes classes. Ela permite que você organize conjuntos de dados de todos os tipos, incluindo conjuntos de dados complexos e grandes, bem como pequenos e simples. Envolve principalmente o uso de algoritmos que você pode modificar facilmente para melhorar a qualidade dos dados.