使用Grails中的黑名单过滤用户输入的最佳方法是什么?

时间:2013-06-13 23:14:09

标签: grails filter grails-2.0 blacklist

在我的网站上,我允许用户创建用户个人资料,以便他们选择用户名。

class User {

   String username
}

从黑名单过滤和限制色情等禁用词的最佳方法是什么? 有最好的做法怎么做?是否有Grails插件处理过滤? 我应该在哪一层过滤控制器,域模型,......?

1 个答案:

答案 0 :(得分:1)

有多种方法可以实现这一目标。如果您有列入黑名单/限制/禁止的单词列表,您可以:

  1. 触发XHR调用以检查username字段中标签上的黑名单中的username
  2. 否则,创建一个taglib并检查username是否不在黑名单中。
  3. 否则,在控制器上创建一个过滤器,以过滤掉列入黑名单的用户名并将用户重定向到错误页面。
  4. 否则,在将其绑定到域类之前,在命令对象内验证username
  5. 否则,请在域类的usernamebeforeInsert事件中验证beforeUpdate
  6. 在所有这些方法中,#1是先发制人且有效的,因为AJAX请求在页面提交和页面重新加载之前进行了乐观检查。最不喜欢的是#5。