O primeiro obstaculo contra SQL INjection 04.01.17 12:11
A primeira barreira contra SQL injection
Validação de dados é uma parte integrante do trabalho com formulários. Não só pode inválido dados enviados levar a problemas de segurança, mas também pode quebrar sua página da web. Hoje, vamos dar uma olhada em como remover caracteres ilegais e validar dados usando a função "filter_input". Esta ferramenta serve para proteção e Higienização do seu código, prevenindo possíveis erros na digitação do usuário, e a entrada de tags indesejáveis, mas para isso precisa-se saber que constante usar, então vamos lá!
Normalmente programadores novatos usam as variáveis globais do PHP para extrair os dados do formulário, exemplo
Digamos que o nome do input seja name=’nome’
Se usa $nome =$_POST[‘nome’];
E se faz isso sem nenhuma preocupação com o tipo de dado que está nesse input, o usuário comum não é o problema, o problema é quando entra um de intenções maliciosas.
Então se passa receber os dados do formulário da seguinte forma
Manual do SANITIZE => Manual do PHP
Também temos vários tipos, como Numéricos Inteiros, Numéricos Float, URL, Email, entre outros, pode se ver acessando o seguinte link
Lembrando que este é apenas o primeiro muro contra SQL injection, precisa muito mais, para realmente garantir a segurança do seu sistema.
Validação de dados é uma parte integrante do trabalho com formulários. Não só pode inválido dados enviados levar a problemas de segurança, mas também pode quebrar sua página da web. Hoje, vamos dar uma olhada em como remover caracteres ilegais e validar dados usando a função "filter_input". Esta ferramenta serve para proteção e Higienização do seu código, prevenindo possíveis erros na digitação do usuário, e a entrada de tags indesejáveis, mas para isso precisa-se saber que constante usar, então vamos lá!
Normalmente programadores novatos usam as variáveis globais do PHP para extrair os dados do formulário, exemplo
Digamos que o nome do input seja name=’nome’
Se usa $nome =
E se faz isso sem nenhuma preocupação com o tipo de dado que está nesse input, o usuário comum não é o problema, o problema é quando entra um de intenções maliciosas.
Então se passa receber os dados do formulário da seguinte forma
Manual do SANITIZE => Manual do PHP
- Código:
$dados = filter_input(INPUT_POST, 'nome' , FILTER_SANITIZE_STRING);
FILTER_SANITIZE_STRING => como pode se perceber se usa para dados do tipo string, ou seja um texto, nesse tipo de dados, também pode ser add os seguintes parâmetros a mais.
FILTER_FLAG_NO_ENCODE_QUOTES,
FILTER_FLAG_STRIP_LOW,
FILTER_FLAG_STRIP_HIGH,
FILTER_FLAG_STRIP_BACKTICK,
FILTER_FLAG_ENCODE_LOW,
FILTER_FLAG_ENCODE_HIGH,
FILTER_FLAG_ENCODE_AMP
Ficaria mais o menos assim
$dados = filter_input(INPUT_POST, 'nome' , FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
Também temos vários tipos, como Numéricos Inteiros, Numéricos Float, URL, Email, entre outros, pode se ver acessando o seguinte link
- Código:
Também temos vários tipos, como Numéricos Inteiros, Numéricos Float, URL, Email, entre outros, pode se ver acessando o seguinte link
Email => $email = filter_input(INPUT_POST, ‘email’ , FILTER_SANITIZE_EMAIL);
URL => $url = filter_input(INPUT_POST, ‘url, FILTER_SANITIZE_URL);
Inteiro => $int = filter_input(INPUT_POST, ‘numero’ , FILTER_SANITIZE_NUMBER_INT);
float => $ float = filter_input(INPUT_POST, ‘numero’ , FILTER_SANITIZE_NUMBER_FLOAT);
[
FILTER_FLAG_ALLOW_FRACTION
FILTER_FLAG_ALLOW_THOUSAND
FILTER_FLAG_ALLOW_SCIENTIFIC
]
float => $ float = filter_input(INPUT_POST, ‘numero’ , FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_SCIENTIFIC);
Lembrando que este é apenas o primeiro muro contra SQL injection, precisa muito mais, para realmente garantir a segurança do seu sistema.
Eu sei que será de ajuda para muitos, então gostou? Já deixa aquele like!