The Codest
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Indústrias
    • Fintech e Banca
    • E-commerce
    • Adtech
    • Tecnologia da saúde
    • Fabrico
    • Logística
    • Automóvel
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
Seta para trás VOLTAR
2021-04-16
Desenvolvimento de software

Segurança das aplicações Web - vulnerabilidade XSS

Lukasz Kolko

Os ataques XSS permitem aos atacantes injetar scripts do lado do cliente em páginas Web visualizadas por outros utilizadores. Os principais efeitos desta vulnerabilidade são a possibilidade de execução de quaisquer acções no contexto do utilizador com sessão iniciada e a leitura de quaisquer dados no contexto do utilizador com sessão iniciada.

Cenário de ataque

  1. O atacante localiza a vulnerabilidade XSS num sítio Web utilizado pela vítima, por exemplo, o sítio Web de um banco
  2. A vítima está atualmente ligada a esta página
  3. O atacante envia à vítima um URL criado
  4. A vítima clica no URL
  5. Sobre a vítima banco sítio Web, JavaScript código começa a ser executado para intercetar os dados do utilizador ou executar uma transferência em seu nome para a conta do atacante

É de salientar que as operações efectuadas em nome da vítima podem ser invisíveis para esta, uma vez que podem ocorrer em segundo plano utilizando a API do banco, ou o atacante pode efectuá-las posteriormente com os dados necessários para a autenticação, tokens, cookies, etc.

Tipos de XSS

1. XSS refletido

É aquele em que o código HTML/JavaScript contido em qualquer parâmetro (por exemplo, GET, POST ou cookie) é apresentado na resposta.

Uma página com uma entrada de texto para procurar algo que coloca o parâmetro ?search=foo no final do URL ao consultar a API. Depois de introduzir qualquer frase, se esta não for encontrada, é colocada uma mensagem de retorno em HTML ex.

<div>Nenhum resultado encontrado para <b>bobo</b></div>

Podemos tentar introduzir o URL ?search=..

2.DOM XSS

Isto acontece quando a sua execução é activada pela utilização de funções perigosas no JavaScript, tais como `eval` ou `innerHtml`. O "exemplo em direto" abaixo mostra um ataque DOM XSS baseado no `innerHtml` função.

3. XSS armazenado

Esta é uma situação em que o código malicioso é escrito no lado do servidor. Por exemplo, podemos enviar um comentário com código malicioso para uma publicação de blogue que é carregada no servidor. A sua tarefa é, por exemplo, aguardar a moderação do administrador e depois roubar os seus dados de sessão, etc.

Métodos de injeção

1. No conteúdo da etiqueta

`onerror=alert('XSS')`em

<img src onerror="alert('XSS')" />

2. No conteúdo do atributo

`" onmouseover=alert('XSS')` em

<div class="" onmouseover="alert('XSS')""></div>

  1. No conteúdo do atributo sem as aspas

x onclick=alert('XSS')em

<div class="x" onclick="alert('XSS')"></div>

  1. No hrefatributo ef

javascript:alert('XSS') em

<a href="javascript:alert('XSS')"></a>

  1. Na cadeia dentro do código JavaScript

";alert('XSS')// em

  1. No atributo com o evento JavaScript

');alert('XSS')// onde ' é uma aspa simples, em

<div onclick="change('&#39;);alert('XSS')//')">João</div>

  1. No href atributo dentro do protocolo JavaScript

);alert(1)// onde %27 é uma aspa simples, em

<a href="javascript:change('%27);alert(1)//')">clique</a>


Exemplo em direto

Métodos de defesa

  1. Codificação de dados utilizando funções incorporadas encontradas em muitos linguagens de programação.
  2. Utilizar sistemas de modelos com codificação automática. A maioria das estruturas populares que utilizam tais sistemas protegem nós da injeção de XSS (Django, Modelos, Vue, React etc.).
  3. Não utilize funções como avaliação ou Função com dados de utilizador não confiáveis.
  4. Não utilize funções e propriedades que atribuam código HTML diretamente aos elementos da árvore DOM, por exemplo, innerHTML, exteriorHTML, insertAdjacentHTML, ocument.write. Em vez disso, é possível utilizar funções que atribuem texto diretamente a estes elementos, tais como textContent ou texto interno.
  5. Tenha cuidado ao redirecionar o utilizador para um URL que está sob o seu controlo. Risco de injeção localização = 'javascript('XSS')'.
  6. Filtrar HTML utilizando bibliotecas como DOMPurificar.
  7. Cuidado com o carregamento .html ou .svg ficheiros. Pode criar um domínio separado a partir do qual os ficheiros carregados serão servidos.
  8. Utilizar o Política de segurança de conteúdos mecanismo.
  9. Dê uma vista de olhos aos filtros anti-XSS integrados nos browsers mais populares.

    Se achou este artigo interessante, siga o Lukasz no Github: https://github.com/twistezo

Ler mais:

Estratégias de obtenção de dados no NextJS

API Rails e CORS. Uma pitada de consciência

Porque é que deve (provavelmente) utilizar Typescript?

Artigos relacionados

Ilustração de uma aplicação de cuidados de saúde para smartphone com um ícone de coração e um gráfico de saúde em ascensão, com o logótipo The Codest, representando soluções digitais de saúde e HealthTech.
Desenvolvimento de software

Softwares para o setor de saúde: Tipos, casos de uso

As ferramentas em que as organizações de cuidados de saúde confiam atualmente não se assemelham em nada às fichas de papel de há décadas atrás. O software de cuidados de saúde apoia agora os sistemas de saúde, os cuidados aos doentes e a prestação de cuidados de saúde modernos em...

OCODEST
Ilustração abstrata de um gráfico de barras em declínio com uma seta ascendente e uma moeda de ouro que simboliza a eficiência ou a poupança de custos. O logótipo The Codest aparece no canto superior esquerdo com o slogan "In Code We Trust" sobre um fundo cinzento claro
Desenvolvimento de software

Como dimensionar a sua equipa de desenvolvimento sem perder a qualidade do produto

Aumentar a sua equipa de desenvolvimento? Saiba como crescer sem sacrificar a qualidade do produto. Este guia cobre sinais de que é hora de escalar, estrutura da equipe, contratação, liderança e ferramentas - além de como o The Codest pode...

OCODEST
Desenvolvimento de software

Construir aplicações Web preparadas para o futuro: ideias da equipa de especialistas do The Codest

Descubra como o The Codest se destaca na criação de aplicações web escaláveis e interactivas com tecnologias de ponta, proporcionando experiências de utilizador perfeitas em todas as plataformas. Saiba como a nossa experiência impulsiona a transformação digital e o negócio...

OCODEST
Desenvolvimento de software

As 10 principais empresas de desenvolvimento de software sediadas na Letónia

Saiba mais sobre as principais empresas de desenvolvimento de software da Letónia e as suas soluções inovadoras no nosso último artigo. Descubra como estes líderes tecnológicos podem ajudar a elevar o seu negócio.

thecodest
Soluções para empresas e escalas

Fundamentos do desenvolvimento de software Java: Um Guia para Terceirizar com Sucesso

Explore este guia essencial sobre o desenvolvimento de software Java outsourcing com sucesso para aumentar a eficiência, aceder a conhecimentos especializados e impulsionar o sucesso do projeto com The Codest.

thecodest

Subscreva a nossa base de conhecimentos e mantenha-se atualizado sobre os conhecimentos do sector das TI.

    Sobre nós

    The Codest - Empresa internacional de desenvolvimento de software com centros tecnológicos na Polónia.

    Reino Unido - Sede

    • Office 303B, 182-184 High Street North E6 2JA
      Londres, Inglaterra

    Polónia - Pólos tecnológicos locais

    • Parque de escritórios Fabryczna, Aleja
      Pokoju 18, 31-564 Cracóvia
    • Embaixada do Cérebro, Konstruktorska
      11, 02-673 Varsóvia, Polónia

      The Codest

    • Início
    • Sobre nós
    • Serviços
    • Case Studies
    • Saber como
    • Carreiras
    • Dicionário

      Serviços

    • Aconselhamento
    • Desenvolvimento de software
    • Desenvolvimento backend
    • Desenvolvimento de front-end
    • Staff Augmentation
    • Programadores de back-end
    • Engenheiros de nuvem
    • Engenheiros de dados
    • Outros
    • Engenheiros de GQ

      Recursos

    • Factos e mitos sobre a cooperação com um parceiro externo de desenvolvimento de software
    • Dos EUA para a Europa: Porque é que as empresas americanas decidem mudar-se para a Europa?
    • Comparação dos centros de desenvolvimento da Tech Offshore: Tech Offshore Europa (Polónia), ASEAN (Filipinas), Eurásia (Turquia)
    • Quais são os principais desafios dos CTOs e dos CIOs?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Direitos de autor © 2026 por The Codest. Todos os direitos reservados.

    pt_PTPortuguese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek cs_CZCzech pt_PTPortuguese