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#中的特定片段从句子中提取整个单词?

c#如何把字符串中的指定字符删除

从C#中的数据中删除特殊字符后如何将dbf文件中的数百万行数据上传到SQL Server

如何从 .NET 框架 C# 中的文本框中删除双逗号?

如何从一个片段中删除数据,这些片段应该反映在google firebase中的其他片段中

c#如何把字符串中的指定字符删除