JavaScriptEncode看起来不对

JavaScriptEncode doesn't look right

本文关键字:看起来 JavaScriptEncode      更新时间:2023-09-26

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

'var DesignTheme 'x3d 'x7b'x22StyleId'x22'x3a'x2235'x22,'x22BackgroundColor'x22'x3a'x22'x23DDF1FA'x22,'x22HeaderColor'x22'x3a'x22'x230B70A6'x22,'x22ButtonColor'x22'x3a'x22'x2347B937'x22,'x22BoxBackgroundColor'x22' x22'x3a....

给了什么?我是否使用了错误的方法来编码?目标是防止跨站脚本,而这个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中的一个编码?