Ir para conteúdo

POWERED BY:

Arquivado

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

Deleu

SQL Injection

Recommended Posts

  Em 26/05/2011 at 19:03, Deleu disse:

@Andrey Knupp

Não entendi o que aconteceu.

 

o adson, falou que o PDO evita erros ..

eu nem aspas usei, apenas finalizei uma query

e a tabela que eu tinha criado, foi se pro beleleu

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Citar

@Andrey Knupp

Não entendi o que aconteceu.

 

Ele deu um sql injection usando PDO, não é a ferramenta que é segura e sim quem cria que tem que deixar seguro, o que acontece se você utilizar um colete a prova de balas errado?

 

 

======================================================================================================

Ps: Desculpa não vi o post do Andrey

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo do modo que você usou o prepare vai acontecer isso, agora usa ele assim.

 

     $id = "0;drop table `teste`";
     $query = $PDO->prepare( 'SELECT * FROM teste WHERE id = :id' );
     $query->bindParam(':id', $id, PDO::PARAM_STR);
     $query->execute();

 

Agora executa assim e vê se vai acontecer o mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, realmente ..

Não tem o mesmo efeito, foi até uma boa dica, eu não via diferença antes

de PDO::query, pra PDO::prepare ..

o bindParam eu já sabia, mais achei que ele fosse apenas um 'replace'

pra as marcações na query, como :id, :nome ..

mais assim, parece que ele faz um handle da string ..

impedindo várias querys .. :P :) ^_^ ;) :joia: :clap:

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 26/05/2011 at 23:42, Lord... disse:
  Citar
eu verifico se tal string é base64

Qual seria a melhor maneira para fazer essa verificação?

 

base64_decode($string)

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Citar
Isso decodificaria não verificaria se a string está em base64 ou não...

 

$string = base64_decode($string, TRUE);
if ($string !== FALSE) {
   echo $string;
} else {
   echo 'nao eh base64... deve ser base65 :-P';
}

 

Não é 100% à prova de falhas, mas facilita e muito. O segundo parâmetro do decode é para exigir STICT, retornando FALSE se não corresponder.

Minha opinião é: tudo isso é desnecessário (estou me referindo ao base64).

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.