1

我陷入了一个艰难的境地,我被迫在某些 Web 表单上使用 ASP 经典。我不想收到垃圾邮件,但我不知道如何使用 .asp 经典版创建蜜罐。

这是可能的还是我必须使用验证码字段?

或者有没有更好的方法来防止使用 asp classic 的垃圾邮件?

表单字段:

<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")
%>
4

2 回答 2

2

我很幸运,在每个提交页面上都使用了 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() 函数,而不是那些“我似乎永远无法阅读”的函数看不清字母和数字。(ASP = OLD + 会员)

谷歌: Dim newBitmap(21,87) Dim vDistort(8) 在你的谷歌搜索结果中排名第一的应该是完整的 ASP Classic Numeric Captcha 代码。它很旧,它是数字,它有效。我不认为现代机器人甚至检测到这个旧的比特流。(幽默)

如果您需要工作示例,只需询问,设置测试页面需要一些时间,但如果您不熟悉表单并需要防止垃圾邮件,最好学习一种以上的方法。在所有表单提交的任何“错误”点,您都应该知道它是人类还是 BOT。

我经常使用Response.End停止 BOT 流量的代码

对于人类,我会给出指示以及可能出了什么问题“数学问题,你错过了 x 很多

数学问题可以替换为图像“这张图片中有什么?” 使用狗、苹果、猫,可能反应有限的东西。

于 2015-05-12T00:13:33.970 回答
1

我建议使用防止表单垃圾邮件的一般最佳实践。这通常在客户端(蜜罐、验证码等)上完成,因此使用 Classic ASP(一种服务器端技术)并不重要。此外,Classic ASP 并没有什么特别之处可以帮助或阻碍您阻止垃圾邮件的尝试。

话虽如此,您会在这个问题的答案中找到一些好主意:

如何防止机器人自动填表?

于 2015-05-11T17:36:32.873 回答