日期:2014-05-16  浏览次数:20289 次

escape()转义后报错:有潜在危险的 Request.QueryString 值
在项目中用到了字符串传递参数,为了在传输过程中加密,使用了如下代码:
function Compile(code) {
  code = code.toString();
  var c = String.fromCharCode(code.charCodeAt(0) + code.length);
  for (var i = 1; i < code.length; i++) {
  c += String.fromCharCode(code.charCodeAt(i) + code.charCodeAt(i - 1));
  }
  return escape(c);
}

但是上述代码在传递ID>900的时候,会返回%3Clg,造成浏览器返回如下错误:

从客户端(Id="<lg")中检测到有潜在危险的 Request.QueryString 值。

主要是浏览器在解析时,把"%3C"解析为"<",请问大家如何解决这个问题?

------解决方案--------------------
改用POST方式提交数据吧。
------解决方案--------------------
将要传递的所有参数全部加密,避免加密后出现等号(Id="<lg")即可!