代码之家  ›  专栏  ›  技术社区  ›  Eric Johnson

从Perl和Catalyst中的用户输入中删除HTML

  •  1
  • Eric Johnson  · 技术社区  · 15 年前

    我正在为我的PerlWeb应用程序使用Catalyst。从用户输入中删除HTML的公认方法是什么?

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

    我认为像html::formfu这样的表单验证模块可以为您做到这一点,但我希望避免这种复杂性。我的表格简明扼要。这个决定是错误的吗?

    我做得对吗?

    2 回复  |  直到 15 年前
        1
  •  5
  •   Evan Carroll    15 年前

    我认为你做得不对。正确的方法是接受从服务器发送的文本。然后使用 html , or html_entities filter 在你看来(可能 TT )为什么这条路是对的?好吧,如果你现在不想支持HTML,你仍然可以修改过滤器,让HTML的一个子集在以后工作。这还允许用户看到他们的输入——只是转义了——而不是将其剥离,从而失去对他们发送的内容和一些潜在的有价值信息的跟踪。

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

        2
  •  5
  •   ysth    15 年前

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