Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos.
Estive lendo sobre sistema de login e percebo a necessidade de se tratar os dados antes de criar a query...
Alguma sugestão do que pode ser feito para melhorar a segurança?
Ex:
recebo os campos:
$login = $_POST['login'];$senha = $_POST['senha'];
não devo envia-los direto para minha query certo?
$minha_query = "select * from tabela where login = '$login' and senha = '$senha';
ja li sobre retirar aspas
$varbase = stripslashes($variavel);
converter os dados:
$senha = int($_POST['senha']);
limpar caracteres:
$login = preg_replace('/[^[:alpha:]_]/', '',$_POST['login']);
$resultado = preg_replace('/[^[:alpha:]_]/', '',$login);
$resultado = preg_replace('/[^[:alnum:]_]/', '',$senha);
Qual destes é interessante na hora de tratar dados (login, formulários etc)?
Alguma coisa a mais que preciso me atentar?
Agradeço as dicas :)
Nesse caso, eu utilizo em todas as consultas que eu realizar? (select, insert, update e delete)
Até hj só utlizava as funções do mysql obsoletas rsrs....
No caso do PDO eu necessariamente devo trabalhar com POO?
Nesse caso, eu utilizo em todas as consultas que eu realizar? (select, insert, update e delete)
Sim, sempre que houver filtragem (cláusula WHERE) com dados vindos do usuário.
Se o WHERE usar dados internos fixos, nem precisa de Prepared Statements, pois é a sua aplicação que gera o filtro. E sua aplicação não tentará destruir a si mesma, certo? :)
Então só precisa usar quando houver dados provenientes do usuário
No caso do PDO eu necessariamente devo trabalhar com POO?
PDO só possui notação Orientada a Objetos. Mas basta saber o mínimo de OOP para saber trabalhar com PDO. Não precisa ir muito a fundo
A classe MySQLi possui opção de usar funções no modo procedural também.
Mas eu recomendo PDO, pelos motivos que escrevi no POST.
Certo, vou deixar a comodidade e estudar mais sobre o PDO. Obrigado pela dica e pela atenção!
Use Prepared Statements e seus problemas serão resolvidos
Falo sobre isso neste post: http://rberaldo.com.br/pdo-mysql/