2

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

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

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

  1. 使用正则表达式过滤掉 HTML 代码,例如#REReplaceNoCase(FORM.InputField, "[^a-zA-Z\d\s:]", "", "ALL")#
  2. 使用严格的纯文本 Anti-Samy 政策

哪个选项是从文本字段中删除任何用户输入的 HTML 代码的正确/良好实践方法。或者我还有其他选择吗?

4

1 回答 1

0

虽然您可以使用 AntiSamy 来做到这一点,但我不知道这样做有多明智。我认为有点违背了它的灵活性的目的。我会对仅在正则表达式上运行它作为过滤器的开销(即使是最小的)感到好奇。

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

reReplace(string, "<[^>]*>", "", "ALL");
于 2015-06-12T03:58:07.670 回答