我最近制作了一个作品集网站并将其放在 000webhost.com
上。今天,当我登录时,该帐户被暂停,因为有人在一分钟内通过我的联系表单发送了超过 70 封电子邮件 - 这是网络托管不允许的。
我正在寻找某种方法来阻止这种情况再次发生。我使用 php 和 javascript/jquery 进行表单验证。
这是我当前的 php 验证代码。
$firstName = $_POST["firstName"];
$lastName = $_POST["lastName"];
$email = $_POST["email"];
$message = $_POST["message"];
$to = "fox.team001@gmail.com";
$subject = $firstName . " " . $lastName;
$headers = "From: " .$firstName . " " . $lastName . "\r\nReply-To:" . $email;
if(validateEmail($email)){
@mail($to , $subject , $message , $headers);
}
validate($firstName , $lastName , $email , $message);
function validate ($firstName , $lastName , $email , $message){
if(!empty($firstName) && !empty($lastName) && !empty($email) && !empty($message)){
if(validateEmail($email)){
header("refresh:5; url=http://www.foxteam.net");
}else{
header("refresh:0; url=http://www.foxteam.net/contact.php");
}
}else{
header("refresh:0; url=http://www.foxteam.net/contact.php");
}
}
function validateEmail($email) {
$pattern = "^[A-Za-z0-9_\-\.]+\@[A-Za-z0-9_\-]+\.[A-Za-z0-9]+$";
if(preg_match("/{$pattern}/", $email)) {
return true;
}else{
return false;
}
}
谁能告诉我如何阻止垃圾邮件发送者发送垃圾邮件?
最佳答案
完全阻止垃圾邮件通过联系表单发送是非常困难的,但是您可以使用多种方法来减少垃圾邮件,其中包括:
- 使用蜜 jar - 其背后的想法是在表单上有一个带有通用名称的隐藏字段(例如
answer
)(如果该字段中有任何内容) ,那么就不用费心发送电子邮件了(但仍然告诉用户电子邮件已发送) - 这显然是垃圾邮件,因为没有其他方法可以填写该字段。 - IP 限制 - 将用户的 IP 地址存储在某处,并限制每个 IP 地址每分钟/小时可以发送的电子邮件数量。
- 字词过滤 - 列出字词列表,如果发现任何字词,则不要发送电子邮件(通常是诸如伟哥、阴茎 等)。
- 验证码,对我来说,这是最后的手段。如果您确实使用一个,请实现 recaptcha ,它是迄今为止最好的一个。但正如我所说,将此作为最后的手段,您可以使用许多其他方法,而不会打扰您网站的用户。
关于php - 限制每秒/分钟发送联系表单电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11882968/