2017-06-13 165 views
-1

我的联系表已收到大量的垃圾邮件。我的联系表格有几个字段。我注意到垃圾邮件中的电子邮件地址字段始终包含强大的Staceyrow,并且邮件字段始终包含以下一项或多项:发薪日,贷款,贷款,贷方,贷方。位置字段总是包含单词达鲁萨兰国。禁止某些字符串

我使用的是一个php联系表格,在后端,我可以输入每个字段的正则表达式。

我必须为电子邮件字段输入什么正则表达式,以便如果用户在该字段中输入任何包含“Staceyrow”(不区分大小写)的内容,表单不会提交?

我必须为消息字段输入什么样的正则表达式,以便如果用户输入任何包含“发薪日”或“贷款”或“贷款”或“贷方”或“贷方”(不区分大小写)字段,表单不提交?

我必须输入位置字段的正则表达式,所以如果用户输入任何包含“Darussalam”(不区分大小写)的表单不提交?

+1

你到目前为止尝试过什么? –

+0

为什么不添加验证码? – rtfm

+0

你可能会对这个问题感兴趣:[如何防止机器人自动填充表单?](https://stackoverflow.com/questions/2387496/how-to-prevent-robots-from-automatically-filling-up -表单) –

回答

2

匹配“Staceyrow”与/staceyrow/i

匹配“发薪日”,“贷款”,“贷款”,“贷款人”,或“贷款人”与/(?:loans?|payday|lenders?)/i(*只是小心匹配无辜的消息字段值)

匹配“莱达鲁萨兰国”与/darussalam/i

如果使用这些标准来拒绝表单提交和/或提供关于拒绝具体的反馈,机器人设计师将能够轻松地调整自己的垃圾邮件值没有提交。

也许会做出某种规则,其中表单总是“似乎”要提交,但是存在一个广义的“出错的错误”错误消息,或根本没有错误消息,并且提交被转储到非活动的数据库表中,在那里你可以手动扫描,以确保没有无辜的用户被抓到你的屏幕上。

或者您可能允许可疑用户提交,但只是在数据库表中有一个额外的列,标记用户为“可疑”。可疑用户可以拥有非常有限的特权,直到人类的眼睛做出某种决定。

正如前面所述,“细长”会在信息字段中产生一个标志,因为。出于这个原因,消息字段是识别坏苹果最不可靠的。哦,如果你打算扩展你的消息模式,出于性能的原因,把最短的字符串放在前面的替代品和更长的字符串中。