Ir para conteúdo



Ajuda com AntiSQLInjetion


  • Por favor, faça o login para responder
1 resposta neste tópico

#1 OverMix Original

OverMix Original
  • Membros
  • 12 posts

Postado 29 January 2012 - 04:27 AM

Prezados Amigos:

Fiz uma página de verificação de login paa ver se bloqueio sql injetion assim evitando que algum espertinho invadir o sistema.

<?php

session_start();  // Inicia a session

include "../mysql.php";

function anti_injection($sql) {
// remove palavras que contenham sintaxe sql
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
$sql = trim($sql);//limpa espa&#231;os vazio
$sql = strip_tags($sql);//tira tags html e php
$sql = eregi_replace ("(\"|\')", "", $sql);
$sql = addslashes($sql);//Adiciona barras invertidas a uma string
return $sql;
}
$adminmaster = anti_injection($_POST["login"]);
$passmaster = anti_injection($_POST["senha"]);

if((!$adminmaster) || (!$passmaster)){

    echo "<script>alert('login e senha devem ser digitados. Retorne e digite seus dados de login');history.back(-1);</script>";
    include "login.php";

}
else{


    $sql = mysql_query("SELECT * FROM administradores WHERE login='{$adminmaster}' AND senha='{$passmaster}'");
    $login_check = mysql_num_rows($sql);

    if($login_check > 0){

        while($row = mysql_fetch_array($sql)){

            foreach( $row AS $key => $val ){

                $$key = stripslashes( $val );

            }

	          $_SESSION['login'] = $login;
            $_SESSION['senha'] = $senha;
            $_SESSION['nome'] = $nome;
            $_SESSION['email'] = $email;


		  header("Location: principal.php");

        }

    }
    else{

        echo "<script>alert('Usu&#225;rio e/ou Senha inv&#225;lido(s)!Confira os dados digitados e tente novamente se o erro continuar entre em contato com o Administrador');history.back(-1);</script>";

        include "login.php";

    }
    }

?>

mas o problema é que o Easy PHP está dando erro nas linhas 9 e 12

linha 9

$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);

Linha 12


 
$sql = eregi_replace ("(\"|\')", "", $sql);


Alguém poderia me dizer onde está o erro? pois não estou conseguindo ajeitar isso?



#2 ava.rj

ava.rj
  • Membros
  • 4 posts

Postado 07 February 2012 - 11:33 AM

Qual o erro informado ?




0 usuário(s) está(ão) lendo este tópico

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)