c#对字符串进行编码以防止XSS注入(RegEx??)

本文关键字:注入 XSS RegEx 字符串 编码 | 更新日期: 2023-09-27 18:02:20

我有一个字符串,其中包含有效的html标记,如<table><br/>,并显示在工具提示中,包括数据库。安全团队认为这是一个关键问题,因为这可能允许来自用户的xss攻击,该攻击将插入<script> alert(...)

在网上,我被告知要使用HttpUtility.HtmlEncode()。问题是,这也是编码我的有效标签。

我要找的,我找不到的是一个RegEx,它可以让我过滤xss注入而不剥离我的有效html标签。

这样的东西存在吗?

c#对字符串进行编码以防止XSS注入(RegEx??)

应该很简单,Html编码整个东西,然后使用regex替换&lt;table&gt;<table>等的所有实例。一个示例正则表达式将是"&lt;('/?(table|span|p|br|tr|td|th|thead|tbody|tfoot|b|i)'s*''?)&gt;",并替换为"<'1>"

你应该很接近了。当然,它不会允许复杂的标签,如<table id=...>等,但你将不得不决定这是否是一个要求。或者使用向下标记编辑器