Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fr4nc0w

SQL Injection PHP + Postgres

Recommended Posts

Dae galera beleza?

 

Estou migrando uma aplicação de MYSQL para Postgres e agora queria saber de vocês como proteger o postgres de SQL Injection.

 

Eu usava no PHP: mysqli_real_escape_string.

 

No Postgres não sei nada mesmo! inclusive além de uma função desse gênero que citei(mysqli_real_escape_string), eu queria mais dicas de como proteger.

 

vlw e flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

De maneira bem simples e eficiente você pode dar um replace nas variaveis trocando ' por ''.

exemplo: $_POST = replace ("'", "''", $_POST);

 

Lembre-se que quando for inserir no banco os valores do tipo string devem estar entre aspas simples.

exemplo: INSERT INTO table VALUES ('$_POST[string1]');

 

Não esqueça também de limitar o tamanho da string senão pode dar erro na inserção.

 

 

[]'sss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom mano faz o seguinte:

 

Eu em particular gosto sempre de trabalhar no PHP ou com Vetores (array) ou Objetos então,

Minha dica é a seguinte:

 

$objDados = (object) array(

'usuario' => addslashes($_POST['login']),

'senha' => addslashes($_POST['senha'])

);

 

Nessa hora você criou um objeto com login e senha e deu escape em apóstofros, aspas duplas, barra invertida e vários outros.

Essa função funciona tanto para postgres quanto para mysql ou qualquer outro banco de dados que o PHP tenha suporte.

 

Mais informações sobre a função AQUI.

 

E depois faça sua query de verificação assim:

 

$sql = "SELECT * FROM <tabela> WHERE login = '$objDados->login' AND senha = '$objDados->senha'";

$rtn = pg_query($sql) or die (pg_error());

 

if((pg_num_rows($rtn) <= '0') || (pg_num_rows($rtn) > '1')){

//Erro ao efetuar login

}else{

//Usuário Altenticado

}

 

Espero ter ajudado.

 

Flws.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, vou ver aqui se estas soluções atendem ao meu problema. Hoje possuo vários tipos de entrada de dados, campos de busca, a própria URL com a páginacao, mas na páginacao forço ser integer por isso se for uma string com SQL por exemplo vira 0.

 

O problema foi q troquei de bd, do mysql para postgres e me senti um pouco perdido no postgres. Por isso estou procurando soluções para os problemas q antes eu já havia solucionado.

 

Vlww caras..

 

volto em breve!

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.