Português (Brasil)

Ferramentas de desenvolvedor · HTML escapador de entidade

Os cinco personagens dos quais você deve escapar em HTML e por que cada um deles é perigoso

· Como funciona

HTML codificação segurança

Os cinco caracteres dos quais você deve escapar em HTML e por que cada um deles é perigoso, mostrados como um diagrama de referência de caracteres seguro para navegador
Ilustração vetorial original ToolAcre

O escape HTML se resume a cinco caracteres: & < > " e '. Esta postagem explica a função que cada um desempenha na marcação, por que a lista depende do contexto e como a entidade de cada um é escolhida.

O comentário que fechou uma tag antecipadamente - um < e > perdido que transformou o texto de um usuário em marcação

O comentário que fechou uma tag antecipadamente - um < e > perdido que transformou o texto de um usuário em marcação. A implementação sempre mapeia e comercial, menor que, maior que, aspas duplas e apóstrofo. O apóstrofo torna-se o número de referência decimal 39, enquanto os outros quatro usam formas com nomes familiares.

Para verificar os caracteres de escape HTML, construa o comentário fechado para um desenvolvedor que renderiza o texto enviado pelo usuário em uma página. Preservar uma etiqueta cedo enquanto a política de cinco caracteres produz desgarrado e que virou; identificar onde o texto de um usuário é consumido. A observação sobre a marcação pertence apenas ao texto HTML.

& primeiro, sempre — por que o próprio caractere de escape deve ser escapado e o que acontece se você ignorá-lo

& primeiro, sempre — por que o próprio caractere de escape deve ser escapado e o que acontece se você ignorá-lo. Um único loop de ponto de código evita erros de ordem de substituição: um e comercial introduzido por uma substituição anterior nunca é visitado novamente, portanto, o codificador não escapa de sua própria saída durante a mesma passagem.

Um desenvolvedor que renderiza o texto enviado pelo usuário em uma página pode testar primeiro sempre por que o próprio caractere de escape da gravação deve ser aprovado antes que a política de cinco caracteres seja aprovada. Compare o que foi escapado e o que acontece depois e localize o analisador responsável por isso acontece se você pular. Este resultado de caracteres de escape html explica isso, não contextos executáveis.

< e > no conteúdo de texto — como o tokenizer decide que uma tag foi iniciada e por que > é escapado principalmente por simetria

< e > no conteúdo de texto — como o tokenizer decide que uma tag foi iniciada e por que > é escapado principalmente por simetria. Menor que inicia a marcação no texto HTML. Maior que é codificado de forma consistente, embora seu perigo dependa do estado do analisador, tornando a saída previsível quando os trechos se movem entre o texto e os atributos citados.

Isole o conteúdo do texto em um pequeno exemplo de política de cinco caracteres. Mostre como o tokenizer decide como origem literal, siga uma tag iniciada até seu destino e nomeie a leitura API e por que ela escapou. Para caracteres de escape HTML, principalmente para simetria, permanece evidência vinculada ao analisador.

Aspas em valores de atributos — " e ' e por que o delimitador de atributo que você usa decide qual deles é crítico

Aspas em valores de atributos - " e ' e por que o delimitador de atributo que você usa decide qual deles é crítico. Ambos os caracteres de aspas são codificados independentemente de qual delimitador envolve um atributo. Isso é conservador para atributos HTML entre aspas, mas não valida nomes de atributos, esquemas ou idiomas downstream.

Trate aspas nos valores dos atributos como um experimento de limite. Um desenvolvedor que renderiza o texto enviado pelo usuário em uma página deve reter e por que, executar uma operação de política de cinco caracteres e inspecionar o delimitador de atributo que você usa caractere por caractere antes de decidir qual é. A afirmação sobre paradas críticas nesta camada HTML.

Exemplo resolvido: escapando de um trecho contendo todos os cinco – as entidades produzidas e o resultado renderizado

Exemplo resolvido: escapar de um trecho contendo todos os cinco – as entidades produzidas e o resultado renderizado. Para o apóstrofo de entrada & < > ", cada modo retorna &amp; < > " '. Os espaços comuns permanecem espaços e as cinco substituições aparecem na ordem de origem.

Reproduza o exemplo trabalhado de escape de um com entrada inofensiva em vez de material do cliente. Registre o snippet contendo todos os cinco, observe as entidades produzidas e conte cada passagem intencional da política de cinco caracteres. Essa trilha de caracteres de escape HTML permite que um desenvolvedor que renderiza o texto enviado pelo usuário em uma página avalie o resultado renderizado e a evidência de política de cinco caracteres sem adivinhar.

Formas nomeadas versus numéricas — "versus" e 'versus', e que são seguras em analisadores mais antigos

Formas nomeadas versus numéricas — "versus" e 'versus', e que são seguras em analisadores mais antigos. O decodificador aceita "e numérico", mais 'e'. O codificador emite deliberadamente 'em vez de', correspondendo à sua escolha de portabilidade documentada.

Coloque os formulários nomeados versus numéricos, quot versus 34 e, e 39 versus apos e lado a lado durante a revisão da política de cinco caracteres. Um desenvolvedor que renderiza o texto enviado pelo usuário em uma página pode então decidir se é seguro alterá-lo na conversão ou no downstream. Mantenha a conclusão dos caracteres de escape HTML sobre analisadores mais antigos fora das reivindicações de segurança genéricas.

O que isso não cobre — escapar dentro de <script>, manipuladores de eventos ou URLs, que precisam de regras diferentes

O que isso não cobre — escapar dentro de <script>, manipuladores de eventos ou URLs, que precisam de regras diferentes. Essas cinco substituições descrevem apenas texto HTML e escape de atributos entre aspas. Os componentes JavaScript, CSS, SQL e URL têm gramáticas independentes e nenhuma saída de entidade é um desinfetante geral.

Defina o que isso não significa antes de executar a política de cinco caracteres. Salve o escape de cobertura dentro do script como um controle, inspecione os pontos de código por trás dos manipuladores de eventos ou URLs e mapeie quais precisam de regras diferentes para o próximo intérprete. Isso torna a evidência de política de cinco caracteres auditável para um desenvolvedor que processa o texto enviado pelo usuário em uma página que investiga caracteres de escape HTML.

Conclusão: cinco caracteres para texto HTML e atributos citados, nem todos os contextos do analisador

Conclusão: cinco caracteres para texto HTML e atributos entre aspas, não para todos os contextos do analisador. Use a ferramenta para inspecionar a transformação exata de cinco caracteres e, em seguida, coloque o resultado apenas em um contexto HTML cujas regras você entende. “Colar em qualquer lugar” não é prometido intencionalmente.

Conecte cinco caracteres a uma saída de política observável de cinco caracteres. Mantenha o texto HTML entre aspas ao lado do resultado de uma passagem e verifique onde os atributos nem todo analisador entra no contexto. Um desenvolvedor que renderiza o texto enviado pelo usuário em uma página agora pode revisar evidências de política de cinco caracteres como uma descoberta restrita de caracteres de escape HTML. A decisão prática por trás deste artigo é específica: o escape de HTML se resume a cinco caracteres: & < > "e '. Esta postagem explica o papel que cada um desempenha na marcação, por que a lista depende do contexto e como a entidade para cada um é escolhida. A ação do leitor é igualmente concreta: links para o escapador de entidade HTML e demonstra o escape de um snippet contendo caracteres de marcação, encaminhando o leitor para 'Entrada e saída suportadas' da página de ferramentas seção para o conjunto exato de caracteres que ele escapa.