Qual devo usar? addslashes ou mysql_real_escape_string e qual a diferença dos dois?
[PHP]addslashes ou mysql_real_escape_string - Qual a diferença
2 participantes
você está querendo filtrar a entrada de dados no seu banco?
Sim, quero saber qual é mais seguro para utilizar em um sistema de login, por exemplo
Ok,
Para começar apenas este metodo não vai tornar sua entrada de dados segura, são necessarios varias verificações, e essa deve ser uma das ultimas
primeiro você começa com a entrada de dados do formulario
a verificação do $_POST
jamais receba ele diretamente
ex $nome = $_POST['nome'] // jamais use desta forma
O php oferece varias formas de você controlar os tipos de dados que você quer que entre em seu banco.
uma das formas como disse a poucos minutos em algum dos posts aqui do forum foi usar as proprias constantes de verificação do php;
sendo elas:
manual do php para você saber que constante usar no seu filtro -> [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
um exemplo de como ficaria, o 'nome' é o nome do input
apos isso você precisa aprender tambem um pouco sobre Regex PHP -> [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
expressões regulares, é necessario dominar isso, vou te dar um exemplo pronto aqui de um codigo de verificação de email que eu fiz.
se passar no sim correspondeu a pesquisa e não tem caracteres invalidos.
se cair em não, tem caracteres invalidos,
e como você mesmo propôs, use também
mysql_real_escape_string
Para começar apenas este metodo não vai tornar sua entrada de dados segura, são necessarios varias verificações, e essa deve ser uma das ultimas
primeiro você começa com a entrada de dados do formulario
a verificação do $_POST
jamais receba ele diretamente
ex $nome = $_POST['nome'] // jamais use desta forma
O php oferece varias formas de você controlar os tipos de dados que você quer que entre em seu banco.
uma das formas como disse a poucos minutos em algum dos posts aqui do forum foi usar as proprias constantes de verificação do php;
sendo elas:
manual do php para você saber que constante usar no seu filtro -> [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
um exemplo de como ficaria, o 'nome' é o nome do input
- Código:
$nome = filter_input(INPUT_POST, 'nome' , FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_AMP);
apos isso você precisa aprender tambem um pouco sobre Regex PHP -> [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
expressões regulares, é necessario dominar isso, vou te dar um exemplo pronto aqui de um codigo de verificação de email que eu fiz.
- Código:
function sintaxy_email($var){ // funão para detectar se o email corresponde a uma sintaxy verdadeira de 4 ou 5 niveis, exemplo @ hotmail . com . br
$parrern='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#'; // definindo o tipo de entrada valida
if(preg_match($parrern,$var) == TRUE){
return $valor='sim';
}else{
return $valor='não';
}
}
se passar no sim correspondeu a pesquisa e não tem caracteres invalidos.
se cair em não, tem caracteres invalidos,
e como você mesmo propôs, use também
mysql_real_escape_string
se for te ajudar, me de um +
Só isso não é suficiente?
$usuario = mysql_real_escape_string($_POST['usuario']);
$usuario = mysql_real_escape_string($_POST['usuario']);
Não, isso vai te ajudar, a questão é que nada é 100% seguro,
e pelo que estou percebendo você deve usar MySQLi ou MySQL, o primeiro é mais atual, porem já não chega aos pes de PDO
se user os dois Citados mude tudo para PDO, de uma lida sobre.
apenas o metodo que você disse ajuda, mas se o cara souber, pode ter certeza q ele vai conseguir quebrar essa segurança, afinal ela já está bem velinha, e as que te passei são mais atuais, inclusive as de constante, recebe atualizações de acordo com seu apache.
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
e pelo que estou percebendo você deve usar MySQLi ou MySQL, o primeiro é mais atual, porem já não chega aos pes de PDO
se user os dois Citados mude tudo para PDO, de uma lida sobre.
apenas o metodo que você disse ajuda, mas se o cara souber, pode ter certeza q ele vai conseguir quebrar essa segurança, afinal ela já está bem velinha, e as que te passei são mais atuais, inclusive as de constante, recebe atualizações de acordo com seu apache.
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Entendi. Obrigado!
Aqui vai um exemplo de como fica grande a verificação, essa é a cms que estou desenvolvendo para habbo com PHP7.0.1 orientada a objetos e PDO
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
essa verificação contem varios metodos, q ao todo passa de 200 linhas de codigo, e ainda sim não está pronta.
precisando de ajuda, chama no chat la, ou abre tópico.
posso fechar?
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
essa verificação contem varios metodos, q ao todo passa de 200 linhas de codigo, e ainda sim não está pronta.
precisando de ajuda, chama no chat la, ou abre tópico.
posso fechar?
se ajudei de um +
Qual é o seu skype?
Pode sim
Pode sim
rapas, não liga para o nome, mas era o que estava disponível
luangostoso1
@Fechado
Autor satisfeito!
Permissões neste sub-fórum
Não podes responder a tópicos
BH Servers
Recomendamos a BH Servers com proteção DDOS gratuita em Cloud Server de alta performance. Entrega imediata.