Jeffrey Cross
Jeffrey Cross

Pare os ataques XSS com o SafeHTML

Se você permitir conteúdo contribuído pelo usuário em seu site, você terá o problema de lidar com HTML fornecido pelo usuário de maneira segura. A maneira mais segura de lidar com as coisas, é claro, é tirar ou escapar de todo o HTML dos campos de entrada do usuário. Infelizmente, existem muitas situações em que seria bom permitir um grande subconjunto de entradas HTML, mas bloquear qualquer coisa potencialmente perigosa.

O SafeHTML é um desinfetante de entrada de usuário PHP leve que faz exatamente isso. Basta executar qualquer campo de entrada por meio do filtro SafeHTML e qualquer tag de objeto, ou tags de quebra de layout será removido do texto fornecido. Ele também faz um trabalho razoável de corrigir qualquer código mal formado, que também é um problema comum com dados contribuídos pelo usuário.

Usá-lo é fácil. Apenas instancie o objeto SafeHTML e chame seu método de análise:

require_once ('classes / safehtml.php');

$ safehtml = & new SafeHTML ();

if (isset ($ _POST ["campo de entrada"])) {$ inputfield = $ _ POST ["campo de entrada"]; $ cleaninput = $ safehtml-> parse ($ inputfield); }

Isso levará o parâmetro "inputfield" postado, removerá os baddies, XHTMLify o que resta e o resultado será armazenado na variável $ cleaninput. É uma adição simples ao seu código e muito mais direta do que tentar criar o seu próprio código.

Meu único problema com o pacote é que ele é escrito com uma política de permissão padrão, removendo as tags que estão em sua matriz deleteTags, mas permitindo essencialmente que qualquer outra coisa seja feita. Se você preferir deixar apenas as tags que deseja permitir especificamente, recomendamos adicionar uma matriz allowTags e ajustar o método _openHandler, adicionando o seguinte após a verificação deleteTags:

if (! in_array ($ name, $ this-> allowTags)) {retorno verdadeiro; }

Você precisará preencher allowTags com tudo o que sabe ser seguro e bem-vindo, e você pode perder alguns que as pessoas acabarão querendo usar legitimamente, mas isso é facilmente corrigido e a política de negação padrão é muito mais segura a longo prazo .

SafeHTML - um analisador de HTML anti-XSS, escrito em PHP

Ação

Deixar Um Comentário