浅谈SQL注入(拼接字符串注入)

SQL注入解释:所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

SQL注入原因

写SQL语句的时候会用拼接字符串的方法,所以会发生SQL注入这种问题。SQL注入后果 如果是让别人发现了你的这个注入的漏洞的话,你的整个数据库有可能直接获得管理员的权限,也就是说这个数据库又可以能掌握在别人的手里,里面的数据想查询就查询,想删除就删除,,想对你数据库怎样就怎样,后果很严重。SQL注入解决方法: 对于SQL注入的方法最简单的也就是把拼接字符串变成一个变量,在传递的时候传递一个变量可以避免拼接字符串SQL注入接下来我用代码来简单的给大家展现一下怎样避免这个问题.(又不对的欢迎大家指出!) 这两个类需要引入才可以//SQLhelper 类中代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using System.Configuration;Public class Sqlhelper(){Private SQLconnection conn=null;Private SQLcommend cmd=null;Public SQLhelper (){ Sting connStr=”Server=服务器名;database=数据库名;uid=sa;pwd=数据库密码”; Conn=new Sqlconnection(connStr)}Private Sqlconnection conn(){ Return true;}Public int ExecuteNonQuery(string sql,SqlParameter[] paras){Int res;Using(cmd.new SqlCommand(sql,GetConn())){ Cmd.Parameters.AddRange(paras);Res=cmd.ExecuteNonQuery}Return res;}}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;插入方法类代码:Public Class categoryDAO{Private Sqlhelper sqlhelper=null;Public categoryDAO(){ sqlhelper=new Sqlhelper();} Public bool insert(string caName){Bool flag=false;String sql=”insert into 表名(字段名)values(@caName)”;SqlParameter[]paras=new SqlParameter[]{New Sqlparameter(”@caName”,caName)}Int res=sqlhelper.executeNonQuery(sql,paras);If(res>0){Flag=true}Return flag} }上面是代码,写的也就是用一个@caName的变量来替换一下拼接的Sql语句,还有在用@caName变量的时候必须要有一个可以存储这个变量的类,所以就引入了SqlParameter这个类来存储这个变量,他的用法 大家自己去查一下或是直接在vs的编译器里面看他的类的参数的解释就可以了,很容易理解。别的就不说了,就到这里把! 谢谢大家用了这么长的时间看我的东西!走的时候留下一个评论哦! 嘿嘿!

每一天都是一个阶梯,是向既定目标迈进的新的一步。

浅谈SQL注入(拼接字符串注入)

相关文章:

你感兴趣的文章:

标签云: