在项目中用到了字符串传递参数,为了在传输过程中加密,使用了如下代码:
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")即可!