c#对字符串进行编码以防止XSS注入(RegEx??)
本文关键字:注入 XSS RegEx 字符串 编码 | 更新日期: 2023-09-27 18:02:20
我有一个字符串,其中包含有效的html标记,如<table>
或<br/>
,并显示在工具提示中,包括数据库。安全团队认为这是一个关键问题,因为这可能允许来自用户的xss攻击,该攻击将插入<script> alert(...)
在网上,我被告知要使用HttpUtility.HtmlEncode()
。问题是,这也是编码我的有效标签。
我要找的,我找不到的是一个RegEx,它可以让我过滤xss注入而不剥离我的有效html标签。
这样的东西存在吗?
应该很简单,Html编码整个东西,然后使用regex替换<table>
与<table>
等的所有实例。一个示例正则表达式将是"<('/?(table|span|p|br|tr|td|th|thead|tbody|tfoot|b|i)'s*''?)>"
,并替换为"<'1>"
你应该很接近了。当然,它不会允许复杂的标签,如<table id=...>
等,但你将不得不决定这是否是一个要求。或者使用向下标记编辑器