Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 针对潜在危险请求的JavaScript编码_C#_Javascript_Asp.net Mvc 3 - Fatal编程技术网

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

C# 针对潜在危险请求的JavaScript编码,c#,javascript,asp.net-mvc-3,C#,Javascript,Asp.net Mvc 3,因此,我在不同的环境中遇到了无处不在的ASP.NET“潜在危险请求”问题几次。在使用CKEditor时,我通过使用一般建议将“htmlEncodeOutput”选项设置为true,成功地击败了它。在其他情况下,我使用了另一个广泛给出的建议,将页面验证恢复到旧版本,这实际上是告诉服务器忽略通过的HTML。好吧 但我还没有弄清楚的是如何自己编码文本(并保持验证)。我尝试了JavaScript escape()和encodeURI()函数,以及一个小字符串.replace()函数,该函数将括号转换为>

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

但我还没有弄清楚的是如何自己编码文本(并保持验证)。我尝试了JavaScript escape()和encodeURI()函数,以及一个小字符串.replace()函数,该函数将括号转换为>和
函数htmlEncode{
返回s.replace(//&/g,“,”)。replace(//g,”)。replace(//“/g,“,”);
}

谢谢。这对我正在使用的测试样本有效,我将要使用它。不过,我还是想知道我读到的一些奇怪的实例,比如“on.”,它应该触发“潜在的”“有助于防止SQL注入攻击的危险错误。@Brent,你能给我指一下你读过的那篇文章吗?我不太清楚你指的是什么。嗯……不是一篇文章,而是一条帖子,海报试图找出他出错的原因:@Brent,听起来海报使用了一个反XSS过滤器,试图拒绝像
onclick=javascript\u goes\u here
这样的模式。如果您的过滤器过于宽泛,
.replace(/=/g,&&61;')
将有助于解决这一问题。
function htmlEncode(s) {
  return s.replace(/&/g, '&amp;').replace(/</g, '&lt;')
      .replace(/>/g, '&gt;').replace(/"/g, '&quot');
}