禁止某些字符串

时间:2017-06-13 05:33:04

标签: php regex form-submit contact-form spam-prevention

我的联系表格收到了大量的垃圾邮件。我的联系表格有几个字段。我注意到垃圾邮件中的电子邮件地址字段始终包含强Staceyrow,并且邮件字段始终包含以下一项或多项:发薪日,贷款,贷款,贷方,贷方。位置字段始终包含单词Darussalam。

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

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

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

我必须为位置字段输入什么正则表达式,因此如果用户输入包含“Darussalam”(不区分大小写)的内容,则表单不会提交?

1 个答案:

答案 0 :(得分:2)

匹配" Staceyrow"与/staceyrow/i

匹配"发薪日","贷款","贷款","贷方"或"贷款人"使用/(?:loans?|payday|lenders?)/i(*只需注意匹配无辜的消息字段值)

匹配"达鲁萨兰国"与/darussalam/i

如果您使用这些标准拒绝表单提交和/或提供有关拒绝的具体反馈,则机器人设计人员将能够轻松调整其垃圾邮件值而无需提交。

或许制定某种形式的规则,表格始终"似乎"提交,但有一个普遍的"出了问题"错误消息,或根本没有错误消息,并且提交被转储到非活动数据库表中,您可以在其中手动扫描它以确保屏幕中没有捕获任何无辜用户。

或许您可以允许可疑用户提交,但只需在数据库表中添加一个额外的列,将用户标记为"可疑"。在人眼做出某种决定之前,可疑用户可能拥有非常有限的权限。

如前所述,"苗条"将在消息字段中引发一个标志,因为。因此,消息字段对于识别坏苹果的可靠性最低。哦,如果你打算扩展你的消息模式,那么出于性能原因,将最短的字符串放在前面的替代字符串中,将更长的字符串放在后面。