• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Battousai

[PHP] Escape "automático" de strings para evitar injecções SQL

7 mensagens neste tópico

function escape( $v ) {

return is_array( $v ) ? array_map( 'escape', $v ) : mysql_real_escape_string( $v );

}

$_POST = escape( $_POST );

$_GET = escape( $_GET );

$_COOKIE = escape( $_COOKIE );

Modo de uso:

Incluir o código acima nas páginas que lidem com formulários ou em páginas susceptíveis a injecção de código ou simplesmente num include global (por exemplo depois da conexão à BD).

Depois do include já não têm que se preocupar mais com "escapar" dados externos ao servidor :D.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Realço que isso só vai funcionar depois de teres uma ligação ao MySQL, já que ele vai buscar info ao MySQLd.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, o mysql_real_escape_string está dependente de uma ligação mysql

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

function db_entry_check($input) {

if(get_magic_quotes_gpc()) {
            if(ini_get('magic_quotes_sybase')) {
                $output        = str_replace("''", "'", $input);
            } else {
                $output        = stripslashes($input);
            }
        } else {
            $output        = $input;
        }

$output = mysql_real_escape_string($output);
return $output;
exit;

}

Aqui fica o código que normalmente uso para prevenir SQL Injections, também requer uma ligação a BD.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas que só vai funcionar para mysql...

Existem no PHP formas de fazer isso de forma independente do SGBD.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu ao por este código (o primeiro), basta fazer um $_POST['qualquercoisa'] normal ou tenho de fazer escape($_POST['qualquercoisa']) ??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se colocares o código antes do $_POST['qualquercoisa'] não tens de fazer escape nenhum.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora