Alex Dias 0 Denunciar post Postado Fevereiro 15, 2007 Amigos eu desenvolví um Livro de Visitas pro meu site e o mesmo todos os dias quando vou visualizar tem ém média 5.000 mensagens postadas, todas elas propagandas de medicamentos, sites ---ôs etc. Tentei bloquer inserindo um sistema de Proteção por imagem, aqueles que gera uma imagem na tela e a pessoa lê e digita o valor no campo, mas não resolveu! Hoje mesmo a tabela guestbook do meu banco de dados estava com 7.000 registros, tudo propaganda!!!! Alguém poderia me ajudar a impedir que meu livro de visitas consiga bloquear essas propagandas? Valeu!!! guestbook.php <?phpsession_start();for ($count=97; $count<=122; $count++) { $aLetras[] = chr($count);}for ($count=1; $count<=6; $count++) { if ($count % 2 == 0) { $sCode .= rand(0, 9); } else { $sCode .= $aLetras[rand(0, count($aLetras) - 1)]; }}$_SESSION['codigo'] = $sCode;?><html><head><title>Documento sem título</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><form action="cadastrando.php" method="post" id="form_lc" name="form_lc" onSubmit="return is_OK()"> <table width="95%" height="337" border="0" align="center" cellpadding="2" cellspacing="1"> <tr> <td height="11" colspan="3"> <p><font color="#333333" size="4"><strong><a name="escrever"></a>Escrevendo no Livro de Visita ...</strong></font></p></td> </tr> <tr> <td height="25" colspan="3"> <p><strong>NOME:</strong></p></td> </tr> <tr> <td height="19" colspan="3"> <input name="nome_guest" type="text" id="nome_guest" size="45"></td> </tr> <tr> <td width="26%" height="16"> <p><strong>CIDADE:</strong></p></td> <td width="16%"><p><strong>ESTADO:</strong></p></td> <td width="58%"><p><strong>PAÍS:</strong></p></td> </tr> <tr> <td height="18"> <input name="cidade_guest" type="text" id="cidade_guest"></td> <td><font color="#000000" face="Verdana" size="1"> <select name=estado_guest size=1 id="select7" style="FONT-SIZE: 9px; FONT-FAMILY: MS Sans Serif"> <option value="<?php echo"$estado";?>" selected>Selecione</option> <option value="AC">AC</option> <option value="AL">AL</option> <option value="AM">AM</option> <option value="AP">AP</option> <option value="BA">BA</option> <option value="CE">CE</option> <option value="DF">DF</option> <option value="ES">ES</option> <option value="GO">GO</option> <option value="MA">MA</option> <option value="MG">MG</option> <option value="MS">MS</option> <option value="MT">MT</option> <option value="PA">PA</option> <option value="PB">PB</option> <option value="PE">PE</option> <option value="PI">PI</option> <option value="PR">PR</option> <option value="RJ">RJ</option> <option value="RN">RN</option> <option value="RO">RO</option> <option value="RR">RR</option> <option value="RS">RS</option> <option value="SC">SC</option> <option value="SE">SE</option> <option value="SP">SP</option> <option value="TO">TO</option> </select> </font></td> <td><font color="#000000" face="Verdana" size="1"> <input name="pais_guest" type="text" id="pais_guest" size="15"> </font></td> </tr> <tr> <td height="39" colspan="3"> <p><strong>DATA:</strong><br> <input name="data_guest" type="text" id="data_guest"> </p></td> </tr> <tr> <td height="11" colspan="3"><p><strong>MENSAGEM:</strong></p> <textarea name="texto_guest" cols="30" rows="4" id="texto_guest"></textarea></td> </tr> <tr> <td height="40" colspan="3"> <p><b>CÓDIGO DE SEGURANÇA:</b> <input type="text" name="fcode"> <img src="gera_imagem.php"></p></td> </tr> <tr> <td height="24" colspan="3"><p> <input type="submit" name="submit" value="Enviar"> </p></td> </tr> </table></form></body></html> cadastrando.php <?phpsession_start();if ($_SESSION['codigo'] == $_POST['fcode']) {// SE O CÓDIGO ESTIVER CORRETO, FAÇA ISSO://CONECTA COM O BANCO DE DADOSrequire_once("adm/conecta.php");//SQL$sql = "INSERT INTO tb_guestbook (NOME_GUEST, CIDADE_GUEST, ESTADO_GUEST, PAIS_GUEST, DATA_GUEST, TEXTO_GUEST ) VALUES ('$nome_guest', '$cidade_guest', '$estado_guest', '$pais_guest', '$data_guest', '$texto_guest')";//Inserindo os dados$sql = mysql_query($sql)or die ("Houve erro na gravação dos dados, por favor, clique em voltar e verifique os campos obrigatórios!");//APÓS GRAVAR NO BANCO DE DADOS REDIRECIONA PRA A PÁGINA ABAIXOinclude_once("guestbook.php");} else {// NÃO CONFIRMADO O CÓDIGO DE VERIFICAÇÃO A MENSAGEM ABAIXO É IMPRESSA NA TELA E É REDIRECIONADO PARA A PÁGINA ABAIXO $erro = "<p class='alerta'><strong>Código de Segurança Inválido, Tente Novamente!</strong>"; $nome = $_POST['nome_guest']; $cidade = $_POST['cidade_guest']; $estado = $_POST['estado_guest']; $pais = $_POST['pais_guest']; $data = $_POST['data_guest']; $texto = $_POST['texto_guest']; include_once("guestbook.php");}?> gera_imagem.php <?phpsession_start();$sCode = $_SESSION['codigo'];if (!extension_loaded('gd')) { dl('php_gd2.dll');}$im = imagecreate(80,20);$background_color = imagecolorallocate($im, 0, 0, 0);$text_color = imagecolorallocate($im, 225, 225, 225);imagestring($im, 15, 2, 2, "$sCode", $text_color);header("Content-type: image/png");imagepng($im);imagedestroy($im);?> Compartilhar este post Link para o post Compartilhar em outros sites
wolfphw 60 Denunciar post Postado Fevereiro 15, 2007 Cara eu estava tendo esse memso problema aqui.. eu consegui resolver isso da seguinte forma...O digito verificador eu fiz ele mostrar em outra página... tipo quando o usuário termina de preencher o formulario e clica em ok.. ele vai abrir outra página com o campo verificador... mas na página do formulario você vai criar uma sessão para verificar na página do campo verificador se a pessoa esta vindo realmente daquela página senaum ele retorna para uma página de erro...O meu eu acabei fazendo assim... Compartilhar este post Link para o post Compartilhar em outros sites
Alex Dias 0 Denunciar post Postado Fevereiro 16, 2007 Valeu wolfphw, vou fazer os teste depois passo aqui novamente pra postar os resultados!!! OBRIGADÃO Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 16, 2007 Recomendo que você faça um sistema de bloqueio de postage conforme determinadas palavras. Algumas palavras muito comuns em spams são: - viagra - xanax - phentermine - adipex Caso haja alguma dessas palavras, o post é bloqueado e é exibida uma mensagem para o visitante. Também é possível desabilitar a postagem enquanto você viaja, por exemplo. Verificação por imagem ajuda, mas não é a solução, infelizmente. Alguns bots spammers conseguem "ler" o número apresentado. ;) []'s Compartilhar este post Link para o post Compartilhar em outros sites
Tiago Araujo 1 Denunciar post Postado Fevereiro 16, 2007 pode ser uma idéia idiota...mas e se tivesse uma pergunta que a pessoa tivesse que pensar...mas nada difícil como "budapeste é capital de onde?" algo como2+4=?pelo menos acho que não inventaram boot spammer pra fazer contas...posso estar por fora também e isso ser uma idéia já ultrapassada hahaha Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 16, 2007 pode ser uma idéia idiota...mas e se tivesse uma pergunta que a pessoa tivesse que pensar...mas nada difícil como "budapeste é capital de onde?" algo como 2+4=? pelo menos acho que não inventaram boot spammer pra fazer contas...posso estar por fora também e isso ser uma idéia já ultrapassada hahaha Isso foi proposto pela própria W3C e não é uma idéia idiota, não! ;) Mas uma continha 10+25 pode ser simplesmente resolvida por um bot futuramente (talvez atualmente isso já possa ocorrer). Talvez você poderia escrever a conta por extenso: 10 + 36 => 10 mais 36 É uma opção também... :D []'s Compartilhar este post Link para o post Compartilhar em outros sites
Tiago Araujo 1 Denunciar post Postado Fevereiro 16, 2007 pode ser uma idéia idiota...mas e se tivesse uma pergunta que a pessoa tivesse que pensar...mas nada difícil como "budapeste é capital de onde?" algo como2+4=?pelo menos acho que não inventaram boot spammer pra fazer contas...posso estar por fora também e isso ser uma idéia já ultrapassada hahahaIsso foi proposto pela própria W3C e não é uma idéia idiota, não! ;)Mas uma continha 10+25 pode ser simplesmente resolvida por um bot futuramente (talvez atualmente isso já possa ocorrer).Talvez você poderia escrever a conta por extenso:10 + 36 => 10 mais 36É uma opção também... :D[]'sbom.. pelo menos não é idiota..eu pensei também em algo como... clique na cor verde... e embaixo mostra 3 cores... aliás existe milhares de maneiras de fazer pensar... porém os boots tambem conseguem identificar muita coisa... Compartilhar este post Link para o post Compartilhar em outros sites
Alex Dias 0 Denunciar post Postado Março 9, 2007 Amigos do Forum eu resolvi esse problemas apenas mudando o nome databela do database de tb_guestbook para tb_msg_amigosValeu pela força!!!Problema encerrado. Compartilhar este post Link para o post Compartilhar em outros sites