You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何移除字符串中的JS代码片段 防范XSS风险的高效实现方案

ASP.NET C# 清理输入中JS代码片段的最高效实现方案

适用场景说明

接收的用户输入中混杂任意JS代码片段,需要清除危险代码保留正常文本内容。

方案1:官方AntiXss处理(推荐,安全性和性能最优)

这是生产环境的首选方案,无需自行匹配规则,微软官方维护的过滤逻辑可覆盖几乎所有JS注入场景,性能为原生优化级别:

  • 先安装NuGet包 AntiXss
  • 直接调用封装好的安全方法即可:
using Microsoft.Security.Application;

// 示例输入:abcdalert(document.cookie);
string rawInput = "你的原始输入内容";
string safeOutput = AntiXssEncoder.GetSafeHtmlFragment(rawInput);
// 输出结果自动清除所有JS代码,仅保留合法文本:abcd

方案2:预编译正则处理(适合轻量简单场景)

如果你的需求仅为清除固定格式的括号包裹JS片段,不需要完整XSS防护,可以用预编译正则实现,性能远高于动态正则:

// 类全局定义预编译正则,仅编译一次可重复调用
private static readonly Regex JsSnippetRegex = new Regex(@"\([\s\S]*?\);?", RegexOptions.Compiled);

public string CleanInput(string rawInput)
{
    if (string.IsNullOrEmpty(rawInput)) return rawInput;
    return JsSnippetRegex.Replace(rawInput, string.Empty);
}

注意:自定义正则存在被绕过的风险,面向公网的业务场景禁止单独使用该方案。

内容的提问来源于stack exchange,提问作者Abhid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:48:05