
#Tigre
Membros-
Total de itens
70 -
Registro em
-
Última visita
Tudo que #Tigre postou
-
Serra, eu estou fazendo e testando no computador, ainda não mandei pro servidor. Mas é bom então saber que é um pouco mais difícil de estragar o sistema, pois pelo que você tinha dito nas outras mensagens, parecia que o negócio era mais vulnerável do que eu imaginava. Fico até um pouco mais tranquilo. O que resta então é colocar as funções necessárias pra tentar pelo menos dificultar os possíveis invasores.
-
O que estou tentando fazer é ver se o site está ou não vulnerável a estes comandos maliciosos. Mas Serra, não era só digitar o comando que o "estrago" estava feito? Eu já coloquei aquela função anti_injection do Fábio e está bloqueando os comandos. Só que com ou sem a função não tá mudando nada. A questão é usar um comando desses só pra testar mesmo.
-
Olá Serra e pessoal, estou tentando usar estes comandos pra estragar a tabela mas não acontece nada. Simplesmente ele guarda o comando no banco como se fosse algo digitado normalmente. Esses comandos são digitados ali no campo do formulário mesmo? Eu peguei os exemplos da wikipédia que você me passou. http://es.wikipedia.org/wiki/SQL_injection Como é que eu faço pra que o teste tenha efeito?
-
Mas vem cá, e como é que o maledeto sabe o nome da tabela. Imagino eu que pra fazer isso tem que digitar o nome da tabela no maldito camando. É por aí ou estou equivocado?
-
Esses exemplos que tem no wikipédia são formas de "estragar" uma tabela? Vou ver se faço um teste com esse DROP, mas não vai explodir nada lá né? hehe
-
É mesmo, não tinha pensado nisso. Serra, eu só não entendi direito qual o efeito que causa usar este comando digitado em um campo de formulário. Neste exemplo que você deu (aí embaixo) o que a função faz é retirar a palavra que está sendo proibida (no caso SELECT). Se eu digitar isso aí sem ter a função na página, o que vai acontecer é guardar esta frase aí no banco de dados, como se fosse algo digitado normalmente. você sabe como posso testar realmente um comando que tenha efeito no banco de dados?
-
É isso Serra, o meu php é a versão 4. Então a saída é usar o str_replace duas vezes, uma pra minúscula e outra pra maicúscula. Acho que isso resolve. O que você acha?
-
Serra, os 4 primeiros $string alí da função só funciona se tirar o 'i' do ireplace. Como está dá este erro: Fatal error: Call to undefined function: str_ireplace() in c:\..... on line 4 Se tirar o 'i' parece que funciona pois ele retira a palavra (select, delete..) digitada. No caso do delete, select... tem um espaço ali depois da palavra que também tem que ser retirado pra funcionar. você sabe a diferença de replace e ireplace? Posso deixar sem o 'i' mesmo?
-
Ah bom, entendi o negócio, então não preciso alterar nada nessa função. E como eu faço pra testar a função, tentar usar DELETE na query por exemplo. É possível ou é complicado testar isso?
-
Serra, mas esse código aí eu passei como estava, sem mudar nada. As variáveis que vem do formulário ficariam aonde? Num exemplo com duas variávies: $nome e $endereco eu tenho que colocá-las ali no lugar do $campo e $valor ou não preciso especificar as variáveis?
-
Olá Serra, voltando ao assunto do tópico, estou tentando implantar esta função que você me sugeriu no ítem 3 acima, mas estou meio confuso em como colocar as variávies ali no foreach. Tem como você me mostrar como ficaria num exemplo simples, por exemplo, com um formulário com 2 variáveis: $nome e $endereço. Tem que fazer um pra cada variável ou todos de uma vez como falou o autor? Esse "todos de uma vez" que ficou meio confuso. Agradeço pela atenção. /* Fabyo Guimaraes de Oliveira 17/12/2004*/ function anti_injection($string){ $string = str_ireplace(" or ", "", $string); $string = str_ireplace("select ", "", $string); $string = str_ireplace("delete ", "", $string); $string = str_ireplace("create ", "", $string); $string = str_replace("#", "", $string); $string = str_replace("=", "", $string); $string = str_replace("--", "", $string); $string = str_replace(";", "", $string); $string = str_replace("*", "", $string); $string = trim($string); $string = strip_tags($string); $string = addslashes($string); return $string; } //aqui eu pego todos os dados vindos do form //e tratos todos de uma vez e já cria as variaveis correspondentes foreach ($_POST as $campo => $valor) { $$campo = anti_injection ($valor); }
-
Ok Serra, vou dar uma estuda em cima destas funções aí. Sobre o que vem do formulário não me preocupa tanto, pois os anúncios cadastrados só serão liberados após a verificação do mesmo. O site que estou fazendo é de classificados de veículos, com usuários cadastrados. O problema maior são esses possíveis ataques. Obrigado pela atenção.
-
Ok Serra, já tá ficando bem mais claro esse negócio do uso do $_POST. Eu só fiquei meio preocupado com esse negócio de segurança. Num outro fórum um usuário passou essa mensagem abaixo: Gostaria muito de sua opinião sobre esse termo "tratar essas variáveis" que o colega falou aí. Qual a melhor maneira de não deixar que essas variáveis fiquem vulneráveis? A sua explicação sobre o uso do $_POST foi a que mais esclareceu a minha dúvida. Só essa questão de segurança é que está me encucando.
-
Ok Serra, só pra terminar, qual o principal motivo de se usar o $_POST, sem contar o register_globals. Seria só pra resgatar mesmo ou tem haver com segurança?
-
Olá pessoal, no site que estou fazendo eu não estava usando o $_POST nas variáveis, mas fiquei sabendo que por motivos de segurança é sempre bom usá-lo. Pelo que fiquei sabendo o $_POST é usado sempre em variáveis que vem de um formulário. Certo? A minha dúvida é no caso do $_GET. Quando devo usar o $_GET ? Em quais tipos de variáveis? Se alguém puder me dar a dica, agradeço.
-
Dica usada e aprovada. Valeu.
-
Beraldo, isto quer dizer o que? Que o modo que passei depende do register_globals estar ou não ativo?
-
Fazendo assim também funcionou, mas será que tem lógica? a primeira linha eu eliminei. //$pagina = $_REQUEST['pagina']; (linha eliminada) if (isset($pagina)){ $pagina=""; } if ($pagina == "") {$pagina = 1;} $inicio = ($pagina * $lpp) - $lpp; Corrigiu o problema, mas o esquema que vocês passaram parece ser mais confiável.
-
Olá Beraldo, vou testar as suas dicas. Agradeço pela atenção.
-
Olá pessoal, estou usando uma função de paginação que encontrei e está funcionando corretamente, mas na primeira página aparecem dois probleminhas que não consigo identificar a causa. A função está neste link: http://forum.wmonline.com.br/index.php?showtopic=129828 E os problemas são essas duas mensagens de erro: Notice: Undefined index: pagina in c:\classificados\admanuncios_ativos_usuarios.php on line 110 Notice: Undefined variable: html in c:\classificados\admanuncios_ativos_usuarios.php on line 73 A linha 110 é essa em azul: $lpp = "10"; $pagina = $_REQUEST['pagina']; if ($pagina == "") {$pagina = 1;} $inicio = ($pagina * $lpp) - $lpp; E a linha 73 essa: while ($primeira <= $ultima) { if ($primeira == $pagina) { $html .= $primeira; } As mensagens só aparecem na primeira página. Se alguém souber o porque das mensagens e puder passar a dica, agradeço.