【问题标题】:What is the best way to filter user input with a blacklist in Grails?在 Grails 中使用黑名单过滤用户输入的最佳方法是什么?
【发布时间】:2013-06-10 12:39:57
【问题描述】:

在我的网站上,我允许用户创建用户配置文件,他们可以在其中选择用户名。

class User {

   String username
}

从黑名单中过滤和限制色情等违禁词的最佳方法是什么? 是否有最佳实践如何做到这一点?是否有处理过滤的 Grails 插件? 我应该在哪一层做过滤Controller,Domain Model,...?

【问题讨论】:

  • 我想您可以将一个受限制的单词表与一个列表(您填充的)进行映射,以将用户名与创建时进行比较,如果匹配则拒绝它。

标签: grails filter grails-2.0 blacklist


【解决方案1】:

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

  1. 触发 XHR 调用以从 username 字段中检查标签上黑名单中的 username
  2. 否则,创建一个taglib并检查username是否不在黑名单中。
  3. 否则,在控制器上创建一个过滤器以过滤掉列入黑名单的用户名并将用户重定向到错误页面。
  4. 否则,请先验证命令对象内部的username,然后再将其绑定到域类。
  5. 否则,在域类的beforeInsertbeforeUpdate 事件中验证username

在所有这些方法中,#1 是先发制人且有效的,因为 AJAX 请求会在页面提交和页面重新加载之前进行乐观检查。最不喜欢的是#5。

【讨论】:

    猜你喜欢
    • 2010-10-07
    • 1970-01-01
    • 2019-10-26
    • 2010-10-15
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多