首页 > 数据库技术 > 详细

web前端安全之SQL注入攻击

时间:2017-08-22 22:23:56      阅读:519      评论:0      收藏:0      [点我收藏+]

一、SQL注入攻击的原理
攻击者在HTTP请求中注入恶意的SQL代码,并在服务端执行。
比如用户登录,输入用户名camille,密码 ‘ or ‘1‘=‘1 ,如果此时使用参数构造的方式,就会出现

select * from user where name = camille and password = ‘‘ or 1=1

不管用户名和密码是什么,查询出来的用户列表都不为空,这样可以随意看其他用户的信息。


二、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注入攻击

原文:http://www.cnblogs.com/camille666/p/web_safe_sql.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!