Agora vamos falar de um tópico que todos já devem ter passado alguma vez.. Todos nós sabemos que a segurança em torno de nossas aplicações web vêm se tornando o principal fator diferencial na venda do produto.. Até maior que sua própria funcionalidade ou marketing. Com a vasta quantidade de informações que as empresas vêm depositando em seus servidores, o cuidado com a exposição dos dados internos aos meios externos deve ser de suma importância..
Mas o que são os meios externos de veiculo de dados??
Estão entre eles:
- formulários
- Algumas variaveis de servidor(ex: $_SERVER['SERVER_NAME'])
- todos os dados veiculados via $_GET, $_POST, $_REQUEST e $_COOKIES
- Dados de querys
- Web services data
- Arquivos diversos
Segundo a nossa boa e velha teoria de Testes de Softwares, todas as informações vindas desses lugares, têm de ser validados para que assegure-se que o que venha seja realmente o que se espera.
Vamos a abordagem:
O filter_input foi adicionado na versão 5 do php, não sei em qual versao.. e agora já está habilitada por padrão nas versões mais atuais..
veja um exemplo prático do seu uso:
arquivo teste.php
CÓDIGO
<html><body>
<form action="validaform.php" method="post" >
Nome: <input name="nome" size="10">
<input type="submit" name="submit" value="Enviar">
</form>
</body></html>
Arquivo validaform.php
CÓDIGO
<?php
if (filter_has_var(INPUT_POST, 'submit')) {
$postado = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_SPECIAL_CHARS);
if (is_null($postado)) {
echo "O campo nome é requerido.<br />";
} else {
echo "Olá Sr(a). ".$postado['nome']."<br/>";
}
}else{
include_once('teste.php');
}
?>
a validação foi feita com 2 linhas básicas. A primeira foi a validação do envio na linha:
if (filter_has_var(INPUT_POST, 'submit')) {
a segunda a validação do conteúdo na linha:
$postado = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_SPECIAL_CHARS);
Vejam tambem outras constantes de filtragem, para conversão de strings, validação inteiros, floats e flags.. O Céu é o limite!
Esse recurso torna muito facil a validação de elementos de informação que trafegam no seu sistema.
Vejam mais sobre o conteúdo em:
http://br2.php.net/filter
http://br2.php.net/manual/pt_BR/ref.filter...ilter.constants
Grande abraço!











