否认登记表上的咒骂词

时间:2011-04-17 03:21:06

标签: php jquery filtering

我有一个主要使用PHP的注册表单,但也有一些jquery / ajax。

我目前已将其设置为检查mySQL中的users表以及deniedusers表,以便让人们知道是否采用了名称。我还添加了一些preg_match以避免使用不需要的字符。它还要求名称至少为4个字符。

我遇到了几个问题。

  1. 如果我允许使用撇号(O'Malley),用户可以注册''''。这是不可取的。

  2. 发誓说。在我的deniedusers表中,我提出了许多咒骂的话,但它肯定不是详尽无遗的。所以让我们用“屁股”作为例子。我可以阻止“butt”作为我的deniedusers表中的用户名,但是如何“Imabutt”或“mybutthole”。我知道过滤可能会变得棘手,一些咒骂词很容易融入普通词。我不需要这样做所有的工作,但过滤掉一些简单的东西会很棒。

  3. 我正在寻找关于是在PHP端还是jquery端执行此操作的建议,以及一些代码示例或指向良好资源的指针。谢谢!

    更新: 我已经得到了关于第2点的一些很好的反馈,发誓的话。非常感谢。

    对于第1点的任何帮助,关于字符的奇怪使用将非常感激。

1 个答案:

答案 0 :(得分:4)

这是一项不可能完成的任务。像评论者说的那样

  

人类的创造力是无止境的

你永远无法创建一个足够健壮的解决方案。)抓住一切令人反感的事情和b。)不要伤害合法用户。请参阅http://www.codinghorror.com/blog/2008/10/obscenity-filters-bad-idea-or-incredibly-intercoursing-bad-idea.html

唯一的工作策略是让某人(或几个人)查看新用户注册并查找令人反感的内容。即使是流量相当高的网站(比如每天新增100个用户注册),也完全可以管理。