为了防止SQL注入,我在客户端用JS做了判断
function checksql(str)
{
var tszf = /<|>|<script>|drop|update|insert|alert|or/;
if(tszf.test(str))
return false;
else return true;
}
我是为了减轻服务器的压力把验证写在JS里.
使用上面的方法能够使文本框禁止输入一些SQL关键字,
这样做究竟安全吗?
有的黑客高手能够跳过JS验证吗?
这是绝对绝对不可靠的,web编程就有一句话“永远不要相信用户提交的数据”,客户端的验证及其不可靠的
简单的firebug就能搞定你这个验证,不说修改数据包这种高级方法了,所以服务端在带入查询之前是一定要进行安全过滤的,这也没有多少服务器开销呀
尽量在服务器中判断,可以使用以下方式
1、使用参数对象
2、使用存储过程
3、过滤特殊符号
不要太多相信客户提交的数据
个人认为防止SQL注入有以下三种方法
1、过滤敏感字符
2、在ASP.Net中使用SqlParameters
3、用存储过程
在ASP.Net中使用SqlParameters
我的数据库操作都是用SqlParameters ,可有时候还是会被注入