No que se refere a autenticidade, autenticação de múltiplos ...
No que se refere a autenticidade, autenticação de múltiplos fatores, protocolos de autenticação e referência insegura a objetos como ameaça de segurança em aplicações, julgue o item a seguir.
Em aplicações suscetíveis a ataques de cross-site scripting, a codificação de entidades HTML aplicada aos dados antes de sua apresentação neutraliza a interpretação dos dados como código, tanto em contexto HTML quanto em contexto JavaScript.
Comentários
Veja os comentários dos nossos alunos
ERRADO.
a questão é sobre codificação de saída (escaping) e/ou context-aware enconding.
são técnicas que transforma dados não confiáveis antes de exibi-los, garantindo que sejam tratados como dados e não como código executável.
o erro ta no final: html e js exigem processos de codificação (escaping) diferentes.
Imagine que o navegador de internet é um aeroporto internacional e precisa lidar com duas pessoas que falam línguas completamente diferentes: o Sr. HTML e o Sr. JavaScript.
O ataque de Cross-Site Scripting (XSS) é o equivalente a um terrorista tentando embarcar com uma bomba.
A "codificação de entidades HTML" é o Detector de Metais da alfândega do Sr. HTML.
O que acontece no Contexto HTML?
Quando o terrorista tenta passar pelo Sr. HTML com uma bomba (um código malicioso como ), o detector de metais pega a bomba e a "desarma", transformando-a em uma réplica de plástico inofensiva ().
O Sr. HTML olha para aquilo e diz: "Ah, isso é só um brinquedo, vou colocar na prateleira para exibição". Ele mostra o desenho na tela, mas ninguém se machuca. Aqui a proteção funcionou perfeitamente.
O porquê do erro no Contexto JavaScript
O erro da frase é achar que o mesmo detector de metais do Sr. HTML protege o Sr. JavaScript. Eles estão em portões totalmente diferentes.
O Sr. JavaScript não entende nada de HTML. Se você pegar aquela mesma bomba disfarçada de plástico () e entregar na mão dele, ele não reconhece o disfarce. Para o JavaScript, aquilo parece uma instrução em código de barras que ele precisa ler.
Ao tentar ler, ele remove o disfarce sem querer, ativa a bomba e ela explode (o ataque acontece).
Resumo
- A codificação HTML é como colocar uma etiqueta em português escrito "Isso é uma tomada perigosa".
- O Sr. HTML lê português, entende o aviso e não mexe ali.
- O Sr. JavaScript só fala japonês. Ele olha para a etiqueta em português, não entende nada, coloca a mão na tomada e toma um choque.
Por isso a frase está errada: você não pode usar um aviso em português (HTML) esperando que um japonês (JavaScript) entenda e fique protegido! Cada um precisa do seu próprio tipo de aviso.
A afirmativa está errada, pois a codificação de entidades HTML não é suficiente para neutralizar ataques de XSS em todos os contextos, especialmente quando os dados são inseridos em código JavaScript.
O Cross-Site Scripting (XSS) é uma vulnerabilidade que permite a execução de scripts maliciosos no navegador da vítima quando uma aplicação trata inadequadamente dados não confiáveis.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo