leitura de
Encontrou um problema no conteúdo? Por favor, deixe seu comentário!

No mundo da WEB 2.0 é muito comum sites que permitam que seus visitantes entrem com dados e textos em campos… Comentários, cadastros, nomes e por aí vai… Só que muita gente abusa da boa vontade e descuido alheio e tenta “brincar” com os sites, inserindo blocos de códigos HTML, sendo alguns deles até maliciosos, diga-se de passagem.

Você, nobre programador, precisa estar pronto para o pior… E uma frase muito comum no nosso meio é “o usuário é o seu maior inimigo”, infelizmente isso é uma realidade, e das mais cruas. Não é que todo mundo faz isso por mal… Mas, mesmo sem querer, acabam fazendo o mal, entende?

Então vou falar aqui sobre três funções que podem ser usadas para amenizar esse problema: a strip_tags(), htmlspecialchars() e a mysql_real_escape_string()… Cada uma faz uma coisa, mas todas ajudam nesse tipo de proteção.

Função strip_tags()

O que essa função faz é simples, curto e grosso: acaba, some, oculta, exclui, remove e destrói QUALQUER código HTML da string. Não importa se é um </strong></b></span>, um </strong></span>…</a>, ou um <iframe></iframe>… Vai tudo pro saco.

Veja um exempo de uso:

Você também pode, se quiser, definir TAGs permitidas, que permanecerão na string:

» Documentação da strip_tags()

Função htmlspecialchars()

A htmlspecialchars não remove as TAGs HTML… Ela escapa o código HTML… Transformando-o em códigos/entidades para exibição… Ou seja, se existe um </strong></span>Hahá!</b> na string, vai aparecer tudo, inclusive o </strong></b></span> (e não negrito).

Exemplo de uso:

Com isso você vai poder saber exatamente o que o espertinho tentou inserir no seu código… :)

» Documentação da htmlspecialchars()

Função mysql_real_escape_string()

No quesito segurança, essa é a função mais legal.. Ela serve pra quando você for inserir aquele código malicioso (que o usuário postou) no seu banco de dados… A função escapa todos os caracteres que o MySQL possa vir a usar e se confundir achando que faz parte da sua query…

Vamos dar um exemplo:

Sem o uso da função, a consulta passada para o MySQL ficaria assim:

Repare que a aspas que fecha o valor a ser inserido, é a que vem depois do “o”, e não a que veio depois do “s”, que seria o correto… O que daria erro no MySQL ou acabaria resultado no cadastro de dados errados e pela metade.

Já usando a função, ficaria assim:

O que fazer com que o nome seja inserido de forma correta, e quando você fizer um SELECT para buscar esse dado, ele virá Fulaninho’s (sem a barra).

» Documentação da mysql_real_escape_string()


E aí? O que me diz? Problemas com strings malemolentes? Nunca mais!

Thiago Belem / Blog

Thiago Belem


Publicado

Thiago Belem / Blog

Thiago Belem / Blog

Artigos e tutoriais sobre desenvolvimento WEB

Continue lendo