C# 如何向WebForms和Razor全局添加转义规则

C# 如何向WebForms和Razor全局添加转义规则,c#,asp.net,angularjs,razor,webforms,C#,Asp.net,Angularjs,Razor,Webforms,我们有一个WebForms输入字段。此输入字段的值设置为textBoxControl.Text=userInputString ASP.NET Html自动对此进行编码以防止XSS,但我们也使用AngularJS。AngularJS解码该值,如果检测到Angular模板语法,Angular将编译该值。 测试{{4*4} 这将通过角度模板注入再次打开XSS。我们如何插入WebForms和Razor Html编码,添加额外的规则来删除{{}字符。WebForms和Razor是否允许这样做,或者我们是

我们有一个WebForms输入字段。此输入字段的值设置为
textBoxControl.Text=userInputString
ASP.NET Html自动对此进行编码以防止XSS,但我们也使用AngularJS。AngularJS解码该值,如果检测到Angular模板语法,Angular将编译该值。
测试{{4*4}


这将通过角度模板注入再次打开XSS。我们如何插入WebForms和Razor Html编码,添加额外的规则来删除
{{}
字符。WebForms和Razor是否允许这样做,或者我们是否需要为所有用户生成的值手动调用我们自己的
AngularEncode(x)
方法?

正在使用一个选项?@mjwills我们已经查看了
ng non-bindable
,但我们的项目很大,跨越多年,有多个开发人员。因此,我们不是将该指令应用于所有非角度组件,而是在寻找一个更全局的解决方案。一种可能有效的方法(我没有尝试过)是结合。如果您可以将AntiXS配置为将{和}输出为unicode字符,那么Angular就可以不用“编译”它们了。但是你需要确定一下。谢谢你,我在看AntiXS,但我不知道如何确切地向白名单/黑名单添加规则可能从AntiXssEncoder.MarkAsSafe开始(LowerCodeCharts.None,LowerMidCodeCharts.None,MidCodeCharts.None,UpperMidCodeCharts.None,UpperCodeCharts.None);是否正在使用选项?@mjwills我们已经查看了
ng non-bindable
,但是我们的项目很大,跨越多年,有多个开发人员。因此,我们不是将该指令应用于所有非角度组件,而是在寻找一个更全局的解决方案。一种可能有效的方法(我没有尝试过)是结合。如果您可以将AntiXS配置为将{和}输出为unicode字符,那么Angular就可以不用“编译”它们了。但是你需要确定一下。谢谢你,我在看AntiXS,但我不知道如何确切地向白名单/黑名单添加规则可能从AntiXssEncoder.MarkAsSafe开始(LowerCodeCharts.None,LowerMidCodeCharts.None,MidCodeCharts.None,UpperMidCodeCharts.None,UpperCodeCharts.None);