fmda 0 Denunciar post Postado Abril 12, 2009 estes dias to recebendo ataques ao site, hoje qunado entrei aparece uma janela pop de alert escrito hackeado por blabla, o que posso fazer para parar com isso, é algum problema com meu site, que tipo de problema Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Abril 12, 2009 Poste o código do site. Como vamos advinhar o tipo de ataque sem ver o código. Aguardando... Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Abril 12, 2009 tipo to sem saber em que pagina que possa ser, eu to achando seria a apgina que o usuario tem acesso, que é onde ele edita seu cadstro no site Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 12, 2009 Tem que ver onde está o código JavaScript. Se estiver no banco de dados, o problema é nesse script mesmo, pois você não validação. Tem que retirar tags por exemplo. Use strip_tags() http://www.php.net/strip_tags Se o JavaScript estiver direto na página, aí o hacker está acessando por FTP, provavelmente. Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Abril 12, 2009 Cria um arquivo chamado antisqlinject.php com o seguinte conteudo. <?php function AntiSqlInjection($recebe) { // Verifica a configuração de "magic_quotes_gpc". $recebe = get_magic_quotes_gpc() == 0 ? addslashes($recebe) : $recebe; // Limpa as tags HTML. $recebe = strip_tags($recebe); // Isso é o Anti SQL Injection mesmo. $recebe = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|\\\\)/"), "", $recebe); return $recebe; } ?> Faça um include desse arquivo em todas as paginas que recebem dados, seja via GET, POST e etc. E então limpe todas essas entradas, fazendo assim. $mes = AntiSqlInjection($_POST['mes']); $dia = AntiSqlInjection($_POST['dia']); $ano = AntiSqlInjection($_POST['ano']); Fazendo isso você esta descartando injeções de dados no sql. PS : Tem como postar o código fonte do site depois que ele é atacado? E tambem, o código da pagina em que o cara esta atacando. Valeu Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Abril 13, 2009 tipo eu tenho um arquivo chamado .php on line 31 Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Abril 13, 2009 Tu fez um include do arquivo antisqlinject.php? Se não, é so usar isso. E ah, nao se esqueça de colocar essa linha antes de chamar a função AntiSqlInjection(); include("antisqlinject.php"); Abraço Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Abril 13, 2009 na pagina ja tem o require_once "../cadastro/db.php"; e dentro deste arquivo tem o antiInjection mas e pra roteger os campos, seria como ? outra coisa, o cara q ta invadindo ele ta pondo no campo de nome um scritp de alert, como retirar isso tbm Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Abril 13, 2009 alguma luz plzz, to achando muito termo tecnico, num to conseguindo intender Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Abril 13, 2009 Coloque outro include, mas agora incluindo o arquivo que eu te mandei la em cima. include("antisqlinject.php"); E então proteja todas as entradas de dados com essa função, como mostrei la em cima. Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Abril 13, 2009 Criei o arquivo Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Abril 13, 2009 fmda, você ainda não entendeu. Você esta querendo usar a função que enviei na hora em que voce usa os dados vindos de algum formulario e etc. Mas não é recomendado fazer assim. Nas primeiras linhas do seu código, defina todas as variaveis de entrada de dados, e depois use essas variaveis no código. Exemplo: $nome = AntiSqlInjection($_POST['nome']); $login = AntiSqlInjection($_POST['login']); $senha = AntiSqlInjection($_POST['senha']); $endereco = AntiSqlInjection($_POST['endereco']); $telefone = AntiSqlInjection($_POST['telefone']); E depois tu sai usando essas variaveis já protegidas. Entendeu? PS : Isso até ajuda muito, porque depois quando você quer alterar algo, fica mais facil e organizado. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Abril 14, 2009 ahh intendi, eu defini ela com uma variavel e chamo o AntiSqlInjection $nome= AntiSqlInjection($_POST['senha']); $endereco = AntiSqlInjection($_POST['endereco']); $telefone = AntiSqlInjection($_POST['telefone']); $xxxxxx = AntiSqlInjection($_POST['xxxxxx']); ae onde eu possuo: <?php echo $usuario->getNome(); ?> eu mudaria para qual jeito ?? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Abril 14, 2009 você só precisa tratar inputs do usuario. E não saída de dados. URL, formularios(q acessarão o banco de dados).. Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Abril 14, 2009 Tipo, eu vou no meu arquivo e ponho: $nome= AntiSqlInjection($_POST['nome']); $endereco= AntiSqlInjection($_POST['endereco']); Agora no meu cmapo textfield tem lá: <?php echo $usuario->getNome(); ?> <?php echo $usuario->getEndereco(); ?> estas 2 linhas acima eu nao modifico nada ???? Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Abril 14, 2009 Eu nao estou intendendo, tem como me mostrar visualmente como fazer, vou postar aki como ta lá, ae me mostrar eomo editar, sou iniciante num to sabendo direito aqui é oq ue tem no inicio do meu arquivo $usuario->setId($sessao->getIdLogin()); $usuario->setNome($_POST['nome']); $usuario->setSobrenome($_POST['sobrenome']); aqui é onde o usuario poe seus dados para mostrar <input type="text" name="nome" size="30" value="<?php echo $usuario->getNome(); ?>" > <input type="text" name="nome" size="30" value="<?php echo $usuario->getSobrenome(); ?>" > como devo proceder pra proteger estes campos, que é onde sao injetado o que num deve, dizendo assim Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Abril 14, 2009 $mes = $_POST["mes"]; $dia = $_POST["dia"]; $ano = $_POST["ano"]; $aniversario = "$ano-$mes-$dia"; $usuario->setId($sessao->getIdLogin()); $usuario->setNome($_POST['nome']); $usuario->setSobrenome($_POST['sobrenome']); $usuario->setNick($_POST['nick']); $usuario->setAniversario($aniversario); $usuario->setNacionalidade($_POST['nacionalidade']); $usuario->setCidadeestado($_POST['cidadeestado']); Tu nao tem essa parte no teu código? Então, olha as variaveis ali que recebem dados de formulários por POST. $mes = $_POST["mes"]; $dia = $_POST["dia"]; $ano = $_POST["ano"]; Faz nessas varaveis. Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Abril 14, 2009 Entao deve ficar desta forma: $mes = AntiSqlInjection($_POST['mes']); $dia = AntiSqlInjection($_POST['dia']); $ano = AntiSqlInjection($_POST['ano']); $nome = AntiSqlInjection($_POST['nome']); $sobrenome = AntiSqlInjection($_POST['sobrenome']); $idade = AntiSqlInjection($_POST['idade']); . . . . Nesta parte deixo como esta: $usuario->setId($sessao->getIdLogin()); $usuario->setNome($_POST['nome']); $usuario->setSobrenome($_POST['sobrenome']); $usuario->setIdade($_POST['idade']); Aqui onde usuario tem acesso, tbm deixo como está: <input type="text" name="nome" size="30" value="<?php echo $usuario->getNome(); ?>" > <input type="text" name="sobrenome" size="30" value="<?php echo $usuario->getSobrenome(); ?>" > <input type="text" name="idade" size="30" value="<?php echo $usuario->getIdade(); ?>" > ae ou seja, todos meus campos estrão protegidos ??? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 14, 2009 está criando muita bagunça 1. conseguiu detectar de onde vem os "ataques" ? primeiramente, corrija o ponto crítico e depois, com calma vasculhe os seus scripts em busca de brechas, pois se fizer assim desse modo, no final criará um monte de gambiarras que trarão dores de cabeça mais pra frente. Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Abril 14, 2009 mas so to precissando disso, o outro erro é de script ainda foi procurar saber como arrumar, eu to qeurendo saber é como proteger pra evitar o injection, o que devo fazer neste arquivo ae q passei, apenas isso Compartilhar este post Link para o post Compartilhar em outros sites