我陷入了困境,我被迫在某些网络表单上使用ASP classic。我不想发垃圾邮件,但我不知道如何使用.asp classic创建蜜罐。
这是可能的还是我必须使用验证码字段?
或者有没有更好的方法来防止使用asp经典的垃圾邮件?
表单字段:
<div class="row">
<div class="col-md-offset-1 col-md-10">
<form class="form-horizontal" role="form" method="post" action="submit.asp">
<div class="form-group">
<div class="col-md-offset-2 col-md-8">
<input type="text" class="form-control" name="Name" placeholder="Name" required/>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-8">
<input type="email" class="form-control" name="Email" placeholder="Email" required/>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-8">
<input type="tel" class="form-control" name="Phone" placeholder="Phone Number">
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-8">
<input type="text" class="form-control" name="Subject" placeholder="Subject">
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-8">
<textarea name="Info" class="form-control" rows="3" placeholder="Message"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-8">
<button class="btn btn-theme btn-lg btn-block"type="submit" value="Send">Send message</button>
</div>
</div>
</form>
<%
Dim EmailFrom
Dim EmailTo
Dim Subject
Dim Name
Dim Phone
Dim Email
Dim Questions
EmailFrom = "name@company.com"
EmailTo = "chad.bridges@company.com"
Subject = Trim(Request.Form("Subject"))
Name = Trim(Request.Form("Name"))
Phone = Trim(Request.Form("Phone"))
Email = Trim(Request.Form("Email"))
Questions = Trim(Request.Form("Info"))
Dim Body
Body = Body & "Name: " & VbCrLf
Body = Body & Name & VbCrLf
Body = Body & "Subject: " & VbCrLf
Body = Body & Subject & VbCrLf
Body = Body & "Phone: " & VbCrLf
Body = Body & Phone & VbCrLf
Body = Body & "Email: " & VbCrLf
Body = Body & Email & VbCrLf
Body = Body & "Questions: " & VbCrLf
Body = Body & Questions & VbCrLf
Dim ObjSendMail
Set ObjSendMail = CreateObject("CDO.Message")
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="10.000.00.000"
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 00
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
ObjSendMail.Configuration.Fields.Update
ObjSendMail.To = "chad.bridges@company.com"
ObjSendMail.Subject = "Website Request"
ObjSendMail.From = EMailFrom
ObjSendMail.TextBody = Body
ObjSendMail.Send
Set ObjSendMail = Nothing
Response.Redirect("Index.html#contact")
%>
答案 0 :(得分:1)
我建议使用防止表单垃圾邮件的一般最佳做法。这通常在客户端(蜜罐,验证码等)完成,因此使用Classic ASP(服务器端技术)并不重要。此外,Classic ASP没有什么特别之处可以帮助或阻碍您阻止垃圾邮件的尝试。
话虽如此,你会在这个问题的答案中找到一些好主意:
答案 1 :(得分:1)
我很幸运在每个提交页面上使用3种类型的垃圾邮件防护,甚至登录和注册页面。因为ASP有点旧,你可能想要保持简单,只使用数值作为一个隐藏垃圾邮件机器人字段的检查。 保持人性化方法。 注意:代码只是我的有效网站的一部分,可以为您的网站提供创意和创意。
<强> 1。隐藏的字段
<input type="hidden" name="email" value="" />
也许你的代码看起来像这样:
Response.Write("<input type=""hidden"" name=""email"" value="""" />" & vbCrLf)
<强> 2。数字问题: 这需要一个简单的功能,它做得非常好。我们想要将数字1到9随机化,因此答案永远不会高于18而且永远不会为0.
str1R = RandomNumber(1,9)
str2R = RandomNumber(1,9)
Session("str3") = (str1 + str2)
Function RandomNumber(LowNumber, HighNumber)
RANDOMIZE
RandomNumber = Round((HighNumber - LowNumber + 1) * Rnd + LowNumber)
End Function
HTML可能如下所示:
<label>Question: What is <%=str1R%> + <%=str2R%> ?</label>
<div>
<div>
<input type="number" name="question" id="question" required />
<input type="hidden" name="a" id="a" value="1" />
</div>
</div>
strA = Request.Form("a")
strQuestion = Left(Request.Form("question"),2)
If IsNumeric(strQuestion) Then
'do notta
Else
strQuestion = -1
End If
If IsNumeric(Session("str3R")) Then
Session("str3R") = Trim(Session("str3R"))
Else
Session("str3R") = 0
End If
strMath = ((Session("str3R") - strQuestion) = 0) 'Now we have True or False
If (strMath = True) Then 'Do your ASP Classic Stuff.
Select Case strA
Case 1
'Sends Email
Case 2
'Submits Registration
End Select
End If
第3。 CAPTCHA 我的意思是CheckCAPTCHA()函数不是那些“我似乎无法阅读”我使用了Captcha的数值16年,只有2个投诉,当我尝试了更复杂的版本,因此许多人无法清楚地看到字母和数字。 (ASP = OLD +会员)
谷歌: Dim newBitmap(21,87)Dim vDistort(8) 在google结果的第一个插槽中应该是完整的ASP Classic Numeric Captcha代码。这是旧的,它是数字,它的工作原理。 我不认为现代BOTS甚至可以检测到这个旧的比特流。 (幽默)
如果您需要工作示例,请稍微询问,设置一个测试页面,但如果您是表格新手并需要防止垃圾邮件,最好学习多种方法。 在所有表单提交的任何“假”点,您应该知道它是人还是BOT。
我经常使用 Response.End
停止BOT流量的代码对于人类,我会回应指示和可能出错的地方“数学问题,你错过了x很多”
数学问题可以替换为图像“这张照片中有什么?”使用狗,苹果,猫,有限的可能的反应。