Trocar aspas por medida de segurança?

Enviada por Chacal 
Chacal
Trocar aspas por medida de segurança?
22 de June de 2001 às 09:16PM
Com questão ao tópico anterior sobre as aspas, a resposta diz trocar aspas por medida de segurança, o que isto quer dizer, o que acontece se elas não forem trocadas?

Obrigado
Assis
RE: Trocar aspas por medida de segurança?
23 de June de 2001 às 09:08AM
Olá!

Um exemplo simples de uma consulta utilizando sql:
$sql = "SELECT * FROM users WHERE username = '$user'";

Observou a utilização de aspas simples certo? Imagine se a variável tivesse o valor:

$user = "assis '";

Ao enviar a query paro o SGBD causaria um erro em seu sistema de login (muito primitivo por sinal), porém normalmente os dados de um formulário são transformados em variáveis com essas alterções (' seria trocado por \' e assim por diante).

A função addslaches() tem esse objetivo, porém se vc usa-la em uma string em que já houve a transformção logicamente ela não saberá e trasnformara-la novamente... exemplo:

//nome vindo do forumlário: assis'
$name = "assis\'"; //conversão automática e invisível para o programador

Se você fizer algo do tipo:
$name = addslaches($name);

$name será agora: assis\\\' entende?

De diferente modo, a função stripslashes() retira essas "transformações" então se vc se sente inseguro ao receber as informações, eu aconselharia a usar as duas funções consecutivamente:

$name = addslaches(stripslaches($name));

Pois assim vc não corre risco, defaz as possíveis transformações e aplica com segurança...
Mas creio que esse tipo de atitude seja desnecessária

obs.: o mesmo se aplica a aspas duplas ou outro caractere que possa causar um erro no SGBD

[]'s
Gleisson
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.