2012-10-22 来源:网络
【实例名称】
JavaScript 过滤 SQL 注入字符
【实例描述】
由于大多数的数据提交语句都是通过多个字符串进行连接,所以为了防止SQL 的注入字符,本例介绍一种过滤特殊字符的方法。
【实例代码】
<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>标题页</title> <script LANGUAGE="JavaScript"> function check(inputStr) { if (typeof(inputStr) != "string") { return inputStr; } //判断是否是字符串类型 var tmpValue = inputStr; //以下搜索字符串中的特殊字符,如果存在,则替换成"" while (tmpValue.indexOf(';') > -1) {tmpValue = tmpValue.replace(';',''); } while (tmpValue.indexOf('<') > -1) {tmpValue = tmpValue.replace('<',''); } while (tmpValue.indexOf('>') > -1) {tmpValue = tmpValue.replace('>',''); } while (tmpValue.indexOf('--') > -1) {tmpValue = tmpValue.replace('--',''); } while (tmpValue.indexOf(",") > -1) {tmpValue = tmpValue.replace(",",""); } while (tmpValue.indexOf("'") > -1) {tmpValue = tmpValue.replace("'",""); } while (tmpValue.indexOf("?") > -1) {tmpValue = tmpValue.replace("?",""); } document.getElementById("txt1").value = tmpValue; //重新显示更改后的变量 } </script> </head> <body> <input type=text id="txt1" value="select * from userinfo where username=zhang' and passwrod=2" style="width: 392px"> <input type=button value="提交" onClick="check(txt1.value)"> </body> </html>
【运行效果】
【难点剖析】
本例的重点是对特殊字符的判断。sQL需要防范的注入字符在代码中被一一列举,使用“indexOF”方法,可以判断字符串中是否包含这些字符。如果“indexOf”返回“一1”,则表示不包含指定的特殊字符。
【源码下载】