针对潜在危险请求的JavaScript编码

时间:2012-03-20 00:40:55

标签: c# javascript asp.net-mvc-3

所以,我现在在不同的环境中遇到无处不在的ASP.NET“潜在危险请求”问题。使用CKEditor时,通过使用一般建议将“htmlEncodeOutput”选项设置为true,我在击败它时取得了相当不错的成功。在其他情况下,我使用了另一个广泛给出的将页面验证还原到旧版本的建议,这实际上告诉服务器忽略通过的HTML。好的。

但我无法弄清楚的是如何自己编码文本(并保持验证到位)。在黑暗中的狂野刺中,我尝试了JavaScript escape()和encodeURI()函数,以及一个将括号转换为>的小string.replace()函数。和<。这些似乎都不起作用。在最近的狂野刺中,我使用“HttpUtility.HtmlEncode”编码文本服务器大小,将其发送到浏览器,并尝试将其发回。突然出现了“有潜在危险的请求”。精氨酸。

是否有任何JavaScript函数的工作样本可以执行CKEditor“htmlEncodeOutput”函数的任何魔术操作?我肯定会感谢任何提示。

1 个答案:

答案 0 :(得分:1)

function htmlEncode(s) {
  return s.replace(/&/g, '&amp;').replace(/</g, '&lt;')
      .replace(/>/g, '&gt;').replace(/"/g, '&quot');
}