JavaScriptEncode看起来不对



我需要在服务器端编码一些javascript,这些javascript被注入到html中。我使用microsoft。security。application . encoder . javascriptencode(),但它最终看起来像这样从视图源:

'var DesignTheme x3d x7bx22StyleIdx22x3ax2235x22,x22BackgroundColorx22x3ax22x23DDF1FAx22,x22HeaderColorx22x3ax22x230B70A6x22,x22ButtonColorx22x3ax22x2347B937x22,x22BoxBackgroundColorx22 x22x3a....

给了什么?我是否使用了错误的方法来编码?目标是防止跨站脚本,而这个javascript在最近对我们网站的安全扫描中发出了危险信号。

Microsoft.Security.Application.Encoder.JavaScriptEncode()仅用于编码将在JavaScript字符串文字中使用的不可信数据。第二个可选参数boolean emitQuotes指定是否在输出字符串的两端添加引号(默认值为true)。例如,在ASP中有两种方法可以使用该方法。净WebForms:

<script>
    <% string nameEnteredByUser = "alert('I am a hacker');"; %>
    var name = <%= Microsoft.Security.Application.Encoder
        .JavaScriptEncode(nameEnteredByUser) %>;
    var nameWithMessage = '<%= Microsoft.Security.Application.Encoder
        .JavaScriptEncode(nameEnteredByUser, false) %>' + ' is a very nice name.';
    console.log(name); //alert('I am a hacker');
    console.log(nameWithMessage); //alert('I am a hacker'); is a very nice name.
</script>

也许您正在寻找System.Web.HttpUtility中的一个编码?

相关内容

  • 没有找到相关文章

最新更新