繁体   English   中英

ASP.NET控件中的安全HTML

[英]Safe HTML in ASP.NET Controls

我相信这是一个常见问题......

我希望用户能够输入和格式化描述。

现在我有一个多行文本框,他们可以输入纯文本。 如果他们可以做一些html格式化会很好。 这是我要处理的事情吗? 解析输入并仅验证是否存在“安全”标签,如<ul><li><b>等?

我将此描述保存在SQL数据库中。 为了正确显示这个HTML,我需要在页面上使用文字并将其转储到适当的区域,还是可以更好地控制我正在做的事情?

此外,是否有像SO上的免费控件用于用户输入/次要编辑?

此外,是否有像SO上的免费控件用于用户输入/次要编辑?

Stackoverflow使用WMD控件和markdown,如下所述:

http://blog.stackoverflow.com/2008/09/what-was-stack-overflow-built-with/

看看AntiXSS库。 当前版本(3.1)有一个名为GetSafeHtmlFragment的方法,可用于执行您正在讨论的解析方式。

Literal可能是输出此HTML的正确控件,因为Literal只输出放入其中的内容并让浏览器呈现任何HTML。 标签将输出包括标签在内的所有标记。

AJax Control Toolkit有一个文本编辑器

您需要检查输入的标签以避免跨侧脚本攻击等。您可以使用正则表达式检查任何标签是否在您拥有的“白名单”上并删除其他任何标签。

您可以查看此链接以获取富文本编辑器列表。

除了其他答案之外,您还需要在包含文本框的页面的@Page指令中设置ValidateRequest =“false”。 这将关闭阻止从文本框发布HTML的标准ASP.NET验证。 然后,您应该使用自己的验证例程,例如@PhilPursglove提到的例程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM