Tenho um formulário de contato que envia e-mail para os setores de uma empresa, porem hoje este script foi atacado e foi enviado mais de 500 e-mails para cada setor da empresa.
Script
[codebox]<? ob_start();
include("conexao.php");
include("scripts.php");
// ENVIANDO MENSAGEM
if(sizeof($_POST['salvar'])){
$setor = $_POST['escolha_setor']; //escolhe o setor e manda o email para a variavel $email
switch ($setor):
case 'comercial':
$email = "setor1@email.com.br";
break;
case 'administrativo':
$email = "setor2@email.com.br";
break;
case 'financeiro':
$email = "setor3@email.com.br";
break;
case 'recursos_humanos':
$email = "setor4@email.com.br";
break;
default:
$email = "rafael-august@bol.com.br";
break;
endswitch;
$estado = $_POST['estado'];
// ENVIANDO MENSAGEM
$from = "comercial@email.com.br";
$to = $email;
$headers = "\nContent-type: text/html; charset=iso-8859-1\r\n";
$assunto = "Contato pelo site Empresa";
$mensagem = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">";
$mensagem .= "<html xmlns=\"http://www.w3.org/1999/xhtml\">";
$mensagem .= "<head>";
$mensagem .= "<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />";
$mensagem .= "<title>Empresa</title>";
$mensagem .= "</head>";
$mensagem .= "<body>";
$mensagem .= "Nome: ". $_POST['nome'] ."<br />";
$mensagem .= "E-mail: ". $_POST['mail'] ."<br />";
$mensagem .= "Cidade: ". $_POST['cidade'] ."<br />";
$mensagem .= "Estado: ". nome_estado($estado) ."<br />";
$mensagem .= "Telefone: ". $_POST['tel'] ."<br />";
$mensagem .= "Mensagem:<br />". str_replace(chr(13), '<br />', utf8_decode($_POST['mensagem'])) ."<hr />";
$mensagem .= "Enviado em: ". date("d/m/Y", data()) ."<br />";
mail($to, $assunto, $mensagem, "from: ". $from . $headers);
header("Location:fale.php?erro=1");
//echo '<meta HTTP-EQUIV="Refresh" CONTENT="1; URL=http://empresa.com.br/fale.php?erro=1">';
ob_end_flush();
}
?>
[/codebox]
Por favor
Eu quero proteger este script contra este tipo de ataque.

Como Se Defender De Email Enviados Em Massa.
Started By crawler, 03/08/2009, 16:47
4 replies to this topic
#1
Posted 03/08/2009, 16:47
#2
Posted 04/08/2009, 09:13
utilize alguma proteção Captcha!
São aqueles caracteres que confirmam se vc é uma pessoa ou não antes de enviar!
São aqueles caracteres que confirmam se vc é uma pessoa ou não antes de enviar!
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#3
Posted 04/08/2009, 11:08
Otima ideia.
#4
Posted 04/08/2009, 11:54
Uma ideia:
Não seria possivel criar uma página HTML chamando a pagina de envio de e-mails, tornando essa proteção inutil?
Não seria possivel criar uma página HTML chamando a pagina de envio de e-mails, tornando essa proteção inutil?
CalvinBall.
Any player may declare a new rule at any point in the game.
The player may do this audibly or silently...
Any player may declare a new rule at any point in the game.
The player may do this audibly or silently...
#5
Posted 04/08/2009, 12:13
Vc pode criar um filtro de tempo, por exemplo:
Assim que o usuário enviar o e-mail, vc salva a data e a hora no BD.
Quando o mesmo usuário for mandar o e-mail, vc puxa do BD a ultima vez que a pessoa enviou um e-mail.
se o intervalo for maior ou igual a 30 segundos (ai vc decide o tempo), o programa envia, senão exibe na tela: "Filtro anti spam aivado. você precisa aguardar 30 segundos para enviar outro e-mail."
Ai, com criatividade vc pode deixar mais bonitinho, colocando uma contagem regressiva do tempo, etc, etc.
Assim que o usuário enviar o e-mail, vc salva a data e a hora no BD.
Quando o mesmo usuário for mandar o e-mail, vc puxa do BD a ultima vez que a pessoa enviou um e-mail.
se o intervalo for maior ou igual a 30 segundos (ai vc decide o tempo), o programa envia, senão exibe na tela: "Filtro anti spam aivado. você precisa aguardar 30 segundos para enviar outro e-mail."
Ai, com criatividade vc pode deixar mais bonitinho, colocando uma contagem regressiva do tempo, etc, etc.
Mais vale um Dev C++ na mão do que dois codeblocks voando
PHP - ||||||||||||||| MySql - |||||||||||||||
C/C++ - ||||||||||||||| Oracle - |||||||||||||||
PERL - |||||||||||||||
PHP - ||||||||||||||| MySql - |||||||||||||||
C/C++ - ||||||||||||||| Oracle - |||||||||||||||
PERL - |||||||||||||||
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)