1

我将 Catalyst 用于我的 Perl Web 应用程序。从用户输入中删除 HTML 的公认方法是什么?

目前我倾向于使用 HTML::FormatText。但我觉得很奇怪,我找不到 Catalyst 中内置的实用程序来完成这项常见任务。我只是没找到吗?此外,这些用于删除输入的模块似乎需要 5 行代码。我希望有一个简单的“deHTMLify()”方法。我想我可以自己动手,但不想重新发明轮子。

我认为 HTML::FormFU 之类的表单验证模块会为您执行此操作,但我希望避免这种复杂性。我的表格简短而简单。这个决定是错误的吗?

我做对了吗?

4

2 回答 2

5

我会争辩说你做得不对。正确的做法是接受从服务器发送的文本。然后使用html, 或在您的视图中html_entities过滤(可能TT)处理从数据库接收的所有值。为什么这是正确的方法?好吧,如果您现在不想支持 HTML,您仍然可以破解过滤器以在以后使 HTML 的子集工作。这也让用户可以看到他们的输入——只是逃跑了——而不是被剥夺,从而失去对他们发送的内容和一些潜在有价值的信息的跟踪。

您的方式似乎也对输出机制(HTML)做出了一些假设,我对此感到不舒服。为什么您只想对一种输出格式的输入进行清理?

于 2010-09-03T04:35:58.977 回答
5

我正在使用HTML::Scrubber,但这就是我想要实际允许元素/属性子集的地方。

于 2010-09-03T03:52:13.193 回答