O Ponto e vírgula e o Javascript;

Quando procuramos informações, posts, comentários, etc. sobre ponto e vírgula no javascript, não é incomum nos depararmos com discussões onde pessoas apontam que o ponto e vírgula é completamente inútil. Por outro lado, há pessoas que advogam que o ponto e vírgula é realmente obrigatório, independente das regras de ASI. Realmente é muito difícil nos depararmos com algum tipo de problema relacionado ao assunto, mas eu acredito que é sempre bom procurarmos entender o funcionamento das linguagens do dia a dia, principalmente o javascript, que está cada vez mais presente em todas as tecnologias que utilizamos.

logo-javascript

Podemos notar que, em casos como um simples:

console.log('console.log com ponto e vírgula');

Funcionam exatamente como:

console.log('console.log sem ponto e vírgula')

Isso acontece justamente por conta das regras de inserção automática de ponto e vírgula. Em casos como este, independente da sua linha de pensamento, das suas convicções, etc, o código vai funcionar exatamente como esperado. Então vamos analisar uma das regras para que isso aconteça:
Continuar lendo

Como criar um keylogger em javascript com apenas 4 linhas de código

Keyloggers são normalmente conhecidos por serem programas de computador que registram tudo o que você digita. O que algumas pessoas desconhecem é a existência de keyloggers em sites vulneráveis. Agora a pergunta que não quer calar: Porque eu deveria me preocupar com um keylogger em javascript se a pessoa que desenvolveu o sistema possui controle sobre o que vai ser carregado ou não, minhas informações pessoais, etc? A resposta é simples, não é quem desenvolveu o sistema que injeta um código desses. Já ouviu falar em man in the middle? ou Cross Site Scripting? Dependendo de onde você está acessando um site, da rede, do seu computador, ou até mesmo do seu ISP, dependendo de como o site/sistema que você está acessando foi desenvolvido, ao logar-se por exemplo no sistema, você pode estar enviando todas as informações digitadas para um outro servidor sem saber. Como isso acontece pode variar, pode ser alguém interceptando a sua requisição e injetando o javascript no response, pode ser um banco de dados que foi comprometido com alguma informação, ou até mesmo um link que você acessa, e sem perceber estava passando uma querystring comprometida. O que quero mostrar aqui é que, com apenas QUATRO linhas de código e um sistema feito sem pensar na segurança pode comprometer todos os seus usuários. Acredito que todo mundo que já programou alguma vez qualquer coisa voltada para web, já se deparou com javascript e está acostumado com eventos, como este:
Continuar lendo