Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Dae galera... Tem um site que os bots de spam estao atacando ehehe
Como o site é em ajax, eu nao consigo colocar o reCaptcha, e não vou mudar a estrutura do site...
O que estou usando é isso:
<?php
if (preg_match( "/bcc:|cc:|multipart|\[url|Content-Type:/i", implode($_POST))) {
$spam = true;
echo "<script> alert('Spam detectado. O recado não foi enviado.');</script>";
echo "<script> window.location='index.php';</script>";
}else{
if (preg_match_all("/<a|http:/i", implode($_POST['mensagem']), $out) > 0) {
$spam = true;
echo "<script> alert('Spam detectado. O recado não foi enviado.');</script>";
echo "<script> window.location='index.php';</script>";
}else{
$spamwords = "/(spam|uncomfortable|androgenic|female|male|studies|propecia|minoxidil|Pharmacy|finasteride|disposition|mutagenesis|alkaline|crystalline|Proscar|Merck|fertility|infections|treatments|spokeswoman|minoxidil|medication|specifically|follicles|alopecia|clinically|PROSCAR|impotence|Merck|symptoms|Minoxidil|immunological|pharmacokinetics|distance|proportion|amiando|cards|epididymis|spermatozoa|morphologically|instructables|weakened|lifecycle)/i";
if (preg_match($spamwords, implode($_POST))) {
$spam = true;
echo "<script> alert('Spam detectado. O recado não foi enviado.');</script>";
echo "<script> window.location='index.php';</script>";
}else{
include("conexao.php");
function anti_injection($sql){
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
$sql = trim($sql);
$sql = strip_tags($sql);
$sql = addslashes($sql);
return $sql;
}
$nome = anti_injection($_POST['nome']);
$email = anti_injection($_POST['email']);
$mensagem = anti_injection($_POST['mensagem']);
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "INSERT INTO mural_de_recados (nome, email, mensagem, ip, data) VALUES ('$nome', '$email', '$mensagem', '$ip', NOW())";
$res= mysql_query($sql,$con);
if(mysql_affected_rows()>0)
echo "<script> alert('Obrigado por enviar o seu recado!');</script>";
else
echo "<script> alert('ERRO: o recado não pode ser enviado. Tente novamente mais tarde!');</script>";
echo "<script> window.location='index.php';</script>";
}
}
}
?>
Queria saber se este jeito já dá uma ajuda para evitar, e também se existem outras funcoes para proteger o formulário com o uso de PHP
Obrigado
Carregando comentários...