如何清理表单值以允许纯文本

时间:2015-06-11 21:32:04

标签: coldfusion sanitization coldfusion-11 antisamy

据我所知,如果用户需要提供HTML代码作为表单输入的一部分(例如在textarea中),那么我使用Anti-Samy策略来过滤掉不允许的危险HTML。

但是,我有一些文本字段和文本区域应该是纯文本的。根本不应该从这些字段中将任何HTML代码插入到数据库中。

因此我尝试清理输入,以便只将原始文本插入数据库。我相信我可以通过两种方式做到这一点:

  1. 使用Regex表达式过滤HTML代码,例如#REReplaceNoCase(FORM.InputField, "[^a-zA-Z\d\s:]", "", "ALL")#
  2. 使用严格纯文本的反Samy政策
  3. 哪个选项是从文本字段中删除任何用户输入的HTML代码的正确/良好实践方法。或者还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

虽然你可以使用AntiSamy来做,但我不知道会有多明智。我认为,有点打败了它灵活性的目的。我很好奇开销,即使是最小的,也只是作为一个过滤器而不仅仅是一个正则表达式。

我个人可能会在这种情况下选择正则表达式路线。您的示例似乎只剥离括号。你的情况可以接受吗? (如果只是一个例子,可以理解)也许使用这样的东西:

reReplace(string, "<[^>]*>", "", "ALL");