【发布时间】:2013-04-06 13:42:19
【问题描述】:
我需要为我正在开发的 Web 应用程序清理用户输入(或输出)。用户输入只是纯文本,我想防止 HTML 或其他“有害”字符串。但是,应该允许使用诸如小于、大于、撇号、和号、引号等字符。
我想第一步是禁用请求验证以防止出现通用的“检测到潜在危险值”消息,但我还需要做什么?例如,我不能简单地对输出进行 htmlencode 编码,否则我最终会显示 < 来代替小于字符。
有什么工具可以提供帮助吗?我快速浏览了 AntiXSS 库,但据我所知,它只是一个美化的 htmlencoder,还是我遗漏了什么? MVC 呢?它有内置的东西吗?
我从来没有找到一篇关于这种事情的像样的文章。有人说净化输入,而另一些人说净化输出,示例通常过于简单化,使用 htmlencoding 等技术,它将重新格式化完全有效的字符,例如小于号。
【问题讨论】:
-
+1 表示您真正关心消毒。太多的开发者因为懒惰而跳过它。
-
@JonAdams 我自己对此感到内疚,主要是因为我觉得它太难了。过去我使用过过于简单的解决方案,结果发现 Ryan O'Murphy 联系了帮助台,因为他的撇号已被删除或更改为字符串“&apos”!
标签: asp.net asp.net-mvc