特殊字符与转义
页面的文本框经常会遇到一些输入特殊字符的问题,这些特殊字符很可能造成页面跳转失败,sql注入,数据读出失败等问题。
(1) 页面跳转的实现方式经常写这样的代码:
window.location.href = "/DetailJudementByClass/Index?QuestionID=" + questionID + "&state="+state;
当questionID和state出现&符号时,就会出现错误。
(2)sql注入最经典的例子是‘1=1’的问题,当文本框中输入类似的符号便会出现问题了。
(3)数据库设计经常会经常使用#符号作为分隔符进行拼接数据,当存入数据库的数据存放入#时就造成数据混乱。
解决方法(1):
function noNumbers(e) { var pattern = new RegExp("[`~!@@#%$"^&*()=|{}":;",\[\].<>/?~!@@#¥……&*()——|{}【】‘;:”“"。,、?]") var rs = ""; for (var i = 0; i < e.length; i++) { rs = rs + e.substr(i, 1).replace(pattern, "\" + e.substr(i, 1)); } $.get("/test/testAction", {"test":e,"a":e,"b":e}, function (data) { alert(data); }); return rs; }
解决方法(2):
function TextValidate() { var code; var character; var err_msg = "文件夹名称不能包含下列字符之一: \ / : * ? " < > | & , "; if (document.all) { code = window.event.keyCode; } else { code = arguments.callee.caller.arguments[0].which; } var character = String.fromCharCode(code); var txt = new RegExp("[\*,\&,\\,\/,\?,\|,\:,\<,\!,\(,\),\{,\},\#,\$,\%,\_.\-,\=,\^,\>,"]"); if (txt.test(character)) { if (document.all) { document.getElementById("userName").textContent = document.getElementById("userName").textContent + "\" + character; window.event.returnValue = false; } else { document.getElementById("userName").textContent =document.getElementById("userName").textContent+ "\" + character; arguments.callee.caller.arguments[0].preventDefault(); } } }
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。