不管用户名和密码是什么,查询出来的用户列表都不为空,这样可以随意看其他用户的信息。
二、SQL注入攻击的防御
1、客户端
- 限制字符串输入的长度;
- 有效性检验。
//过滤URL非法SQL字符,或者过滤文本框非法字符。 var sUrl = location.search.toLowerCase(); var sQuery = sUrl.substring(sUrl.indexOf("=")+1); reg=/select|update|delete|truncate|join|union|exec|insert|drop|count|‘|"|;|>|<|%/i; if(reg.test(sQuery)) { alert("请勿输入非法字符"); location.href = sUrl.replace(sQuery,""); }
2、服务端
- 使用预编译的PrepareStatement(java);
- 有效性检验,防止攻击者绕过客户端请求;
- 永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取;
- 过滤SQL需要的参数中的特殊字符,比如单引号、双引号。
web前端安全之SQL注入攻击
标签:mil sub 行数据 就会 ring 客户 数据 ace user