码迷,mamicode.com
首页 > 数据库 > 详细

web前端安全之SQL注入攻击

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

标签:mil   sub   行数据   就会   ring   客户   数据   ace   user   

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

标签:mil   sub   行数据   就会   ring   客户   数据   ace   user   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!