XSS:如何从 C# 中的字符串中删除 JS 片段?
Posted
技术标签:
【中文标题】XSS:如何从 C# 中的字符串中删除 JS 片段?【英文标题】:XSS: How can I remove JS snippets from a String in C#? 【发布时间】:2021-11-15 23:13:50 【问题描述】:我的用例实际上很简单。
假设我得到一个像abcdalert(document.cookie);
这样的输入参数,我想将它从(document.cookie);
部分中删除。
在 ASP.NET C# 中执行此操作的最有效方法是什么?
PS:sn-p 可以是任何JS代码。不一定是警报。
【问题讨论】:
您应该提供更多示例,说明您想要保留什么样的代码以及要处理什么...... 也许可以看看 Antixss @DorLugasi-Gal 主要是基于 XSS 的 sn-ps,有人可能会进入。专注于基于 JS 的攻击。 那么你为什么接受这个而不引入某种错误呢? 【参考方案1】:我推荐htmlSanitizer
.Net 库来应用服务器端清理
https://github.com/mganss/HtmlSanitizer
这个库用于从潜在的 XSS 攻击中清除 HTML 片段和文档。它使用 AngleSharp 来解析、操作和渲染 HTML 和 CSS。它基于强大的 HTML 解析器,可以保护您的代码免受故意或意外的“标签中毒”,其中一个片段中的无效 HTML 会破坏整个文档(这可能导致布局或样式损坏)
【讨论】:
这有帮助。另外,我使用HttpUtility
编码器也有类似的效果。以上是关于XSS:如何从 C# 中的字符串中删除 JS 片段?的主要内容,如果未能解决你的问题,请参考以下文章
从C#中的数据中删除特殊字符后如何将dbf文件中的数百万行数据上传到SQL Server