Questão nº 45
Questão de Tecnologia da Informação · FCC TRF4 2019 (nº 45)
Ataques Cross-Site Scripting (XSS) muitas vezes usam caracteres especiais em campos de formulário para acessar áreas restritas do site. Para evitar esse tipo de ataque, um programador PHP recebeu o login de um usuário, digitado em um campo de formulário, da seguinte forma.
$login = filter_input(INPUT_POST, 'login', I);
Considerando que no campo login do formulário foi digitado <comando>, para que os sinais de < (menor) e > (maior) sejam trocados por suas respectivas referências de nome de entidade, ficando no formato <comando>, a lacuna I deverá ser preenchida corretamente por
- A`FILTER_SANITIZE_MAGIC_CHARACTERS`
- B`FILTER_SANITIZE_FULL_ENTITY_CHARACTERS`
- C`FILTER_SANITIZE_SPECIAL_CHARS` (alternativa correta)
- D`FILTER_SANITIZE_FULL_SPECIAL_ENTITIES`
- E`FILTER_SANITIZE_MAGIC_QUOTES`
Resposta comentada
Gabarito Alternativa C
XSS é um ataque onde o criminoso insere código malicioso (como HTML ou JavaScript) em um site; para evitar isso, é preciso transformar caracteres especiais como < (menor que) e > (maior que) em "entidades HTML" (como < e >), para que o navegador os veja como texto comum, e não como parte de um comando.
- (A) Incorreta:
FILTER_SANITIZE_MAGIC_CHARACTERSnão é uma constante de filtro válida no PHP. - (B) Incorreta:
FILTER_SANITIZE_FULL_ENTITY_CHARACTERSnão é uma constante de filtro válida no PHP. - (C) Correta: Este filtro converte os caracteres HTML especiais mais importantes (
<,>,&,",') em suas entidades HTML correspondentes (<,>,&,",'), neutralizando tags e scripts maliciosos, exatamente como pedido para<e>. - (D) Incorreta: Embora também converta
<e>para entidades, este filtro é mais abrangente (equivalente ahtmlspecialcharscomENT_QUOTES | ENT_HTML5), convertendo todos os caracteres aplicáveis para entidades HTML, o que pode ser excessivo para a necessidade específica de neutralizar<e>mencionada na questão. É o distrator mais tentador, pois "full" sugere uma proteção completa, masSPECIAL_CHARSé o mais direto e preciso para a necessidade de tags HTML. - (E) Incorreta:
FILTER_SANITIZE_MAGIC_QUOTESfoi removida no PHP 5.4.0 e estava relacionada à funcionalidade "magic quotes" (aspas mágicas), que não tem a ver com a conversão de<e>em entidades HTML.
Fonte: FCC TRF4 2019 Analista Judiciário - Área Apoio Especializado - Especialidade Sistemas de Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.