A segurança do JavaScript é um grande negócio e por todos os motivos certos. O JavaScript nos permite fazer coisas incríveis no front-end, mas algumas dessas coisas incríveis são para avaliar mal. Spyjax costumava ser um desses males, mas os navegadores parecem ter descoberto isso. Uma técnica que tenho visto ultimamente é o clickjacking: apresentar um link como um URL, mas depois mudar o URL rapidamente para enganar o usuário. Vou mostrar ao senhor o que vi.
Ao visitar a CNBC, eu ocasionalmente comandava+clique em um link de uma publicação para abri-la em uma nova janela, mas o Google Chrome se recusava a fazê-lo por meio do bloqueador de pop-ups. Isso me confundiu – estou acionando uma ação “nativa”, por que o bloqueador de pop-ups está me incomodando? Porque a CNBC estava sendo uma gangsta:
<a href="https://davidwalsh.name/some-url" onmousedown="this.href="http://davidwalsh.name/some-other-url";">Misleading Link Title</a>
O href
foi definido como um URL, mas o JavaScript alterou dinamicamente o href
para o endereço “incorreto” quando o usuário fazia o movimento de “mousedown”, alterando assim o destino antes que o usuário soubesse. Essa é uma prática incrivelmente obscura com apenas um objetivo possível: enganar o usuário e possivelmente até mesmo os mecanismos de pesquisa.
É impressionante que o Chrome tenha detectado a técnica da CNBC e bloqueado o clique. O clickjacking pode se tornar um problema sério e eu perdi muita confiança na CNBC. Se o senhor estiver participando dessa prática, talvez seja melhor parar – os navegadores estão de olho no senhor.
39 Shirts – Deixando a Mozilla
Em 2001, eu tinha acabado de me formar em uma escola de ensino médio de uma cidade pequena e estava indo para uma faculdade de uma cidade pequena. Encontrei-me no pitoresco laboratório de informática, onde os computadores de baixa qualidade apresentavam dois navegadores: Internet Explorer e Mozilla. Foi nesse laboratório que me apaixonei…
Pure CSS Slide Up e Slide Down
Se eu puder evitar o uso de JavaScript para animações de elementos, ficarei incrivelmente feliz e me sentirei motivado a fazer isso. Elas são mais eficientes, não requerem uma estrutura JavaScript para gerenciar etapas e são mais elegantes. Um efeito que é difícil de ser definido com CSS puro é o deslizamento para cima…