Em quais funções do WP você precisa usar esc_html () ou esc_url ()?

8

Encontrei situações em que as pessoas usaram esc_html() ou esc_url() com determinadas funções do WP, como home_url('/') . Um exemplo está na tag âncora de abertura do link <a> de volta para a página inicial, como esta:

<a href="<?php echo esc_url( home_url( '/' ) ); ?>"> 

Como você sabe quais funções do WP precisam ser escapadas e isso importa se você usa esc_html() ou esc_url() ?

Qualquer conselho ou orientação seria maravilhoso.

    
por The Chewy 06.01.2018 / 23:43

2 respostas

9

Qualquer um que retorne dados.

  • Se uma função sai internamente, então é assumido a responsabilidade de escapar
  • se uma função retornar os dados para uso, ela não terá escape para evitar o escape duplo, é sua responsabilidade

Isso ocorre porque você deve sempre escapar mais tarde para que não haja dúvidas se uma variável é escapada.

Se a saída de APIs, como home_url , tiver sido precedida de escape, isso não será mais verdadeiro. Ele também introduziria double escaping, que pode ser usado para interromper o escape em alguns cenários.

Algumas outras notas:

  • não se incomode em escapar de strings estáticas, é inútil
  • não tente quebrar funções como the_permalink em esc_url etc, funções de escape ainda são funções, elas não são modificadores / marcadores mágicos dizendo ao PHP para proteger algo.
  • Não retorne fragmentos HTML complexos em variáveis, retorne dados, os dados não precisem ser ignorados, mas escapar de um fragmento HTML complexo não é fácil, e geralmente é impossível fazer isso com segurança
  • Ao usar shortcodes / filters, certifique-se de escapar dos bits que você adiciona / modifica, mas deixe o resto de lado e confie que ele escapou, não é sua responsabilidade escapar da saída gerada em outras situações. Tendo dito isso, não confie nele como uma entrada, seja se estiver sendo usado para guiar seu próprio código
por Tom J Nowell 07.01.2018 / 00:46
3

Qualquer saída de dados não confiáveis (incluindo dados do banco de dados) deve ser higienizada. O WordPress Codex descreve as funções disponíveis: enlace

Os sniffers de código, seguindo os Padrões de codificação do WordPress , exigem a limpeza da saída até mesmo das funções principais do WordPress. Você pode ativar esse sniffer de código no PhpStorm, por exemplo.

Em algum momento, esse requisito é excessivo, mas é melhor seguir os padrões de codificação para ter um código mais confiável.

    
por KAGG Design 07.01.2018 / 00:30