参数命令化 防止Sql注入

1.先在数据库中完成储存过程

create proc usp_selectStudent
@studentName nvarchar(10)
as
select * froom student where StudentName=@studentNanme
go

2.然后再C#程序中调用储存过程防止Sql注入

    //1.1  连接字符串
    string str = "data source=.;initial catalog=MySchool;uid=sa;pwd=6375196";
    //1.2 创建连接对象    呵呵
    SqlConnection con = new SqlConnection(str);
    //创建SqlCommand 对象的第二种方式
    //从Con出发
    //1.3  从连接对象构建命令对象
    SqlCommand cmd = con.CreateCommand();
    //1.4  给命令对象需要执行的SQL语句赋值
    cmd.CommandText = "usp_selectInfo";
    //告诉SQL引擎我传递过来的是        存储过程的名称
    //1.5  我们告诉SQL引擎   我通过网线送过去的字符串是  一个存储过程的名字啊
     cmd.CommandType= CommandType.StoredProcedure;
     //1.6   构建存储过程的输入参数,并且给参数赋值,
     //参数的名称必须和定义存储过程的输入参数名称完成相同
     SqlParameter para=new SqlParameter("@sex","1");
     //1.7   将参数和命令对象的参数集合绑定
     cmd.Parameters.Add(para);
     //1.8  打开数据库连接通道真正建立
     con.Open();
     //1.9   构建一个适配器 )卡车( 对象
     SqlDataAdapter da=new SqlDataAdapter();
     //1.10  将已经初始化好的cmd对象和da绑定
     da.SelectCommand = cmd;
     //1.11   构建内存中的数据集对象
     DataSet ds=new DataSet();
     //1.12   从DB   拎    数据到DataSet 中的一张表
     da.Fill(ds, "StuInfo");
     //1.13    将dgv的数据源指向表
     dgvList.DataSource = ds.Tables["StuInfo"];
     //1.14    连接关闭
      con.Close();
时间: 2024-10-16 21:56:42

参数命令化 防止Sql注入的相关文章

输入值/表单提交参数过滤有效防止sql注入的方法

输入值/表单提交参数过滤,防止sql注入或非法攻击的方法: 代码如下: /** * 过滤sql与php文件操作的关键字 * @param string $string * @return string * @author zrp <[email protected]> */ private function filter_keyword( $string ) { $keyword = select|insert|update|delete|\|\/\*|\*|\.\.\/|\.\/|union

带参数的查询防止SQL注入攻击

把单引号替换成两个单引号,虽然能起到一定的防止SQL注入攻击的作用,但是更为有效的办法是把要拼接的内容做成“参数” SQLCommand支持带参数的查询,也就是说,可以在查询语句中指定参数: 参数的设定: string strCmd = "SELECT AccountID FROM Account WHERE [email protected] AND [email protected]"; 对于SQL Server数据库,“@”是参数的前缀.上句中定义了两个参数:@AccountNa

ADO.NET快速入门——带参数的查询防止SQL注入攻击

相关知识: 把单引号替换成两个单引号,虽然能起到一定的防止SQL注入攻击的作用,但是更为有效的办法是把要拼接的内容做成“参数” SQLCommand支持带参数的查询,也就是说,可以在查询语句中指定参数: 参数的设定: string strCmd = "SELECT AccountID FROM Account WHERE [email protected] AND [email protected]"; 对于SQL Server数据库,“@”是参数的前缀.上句中定义了两个参数:@Acc

PHP POST, GET 参数过滤,预防sql注入函数

1. 实际过滤函数 可适当修改其中的正则表示式 1 static public function filterWords(&$str) 2 { 3 $farr = array( 4 "/<(\\/?)(script|i?frame|style|html|body|title|link|meta|object|\\?|\\%)([^>]*?)>/isU", 5 "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/

sql注入总结

本实验测试是基于sqli-labs的实验环境 环境配置:php+mysql 环境搭建请参考 http://www.freebuf.com/articles/web/34619.html Sql注入定义: 就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行的sql命令的目的 sql注入分类: 基于联合查询 基于错误回显 基于盲注,分时间盲注和布尔型的盲注 基于user-agent 基于feferer 基于cookie 二次注入 宽字节注入 注入一个网站

SEED实验系列:Collabtive系统SQL注入实验

本课程原文链接为:https://www.shiyanlou.com/courses/291.实验楼已经为此课程的实践提供了在线实验环境,想要尝试体验的,可以直接前往实验楼进行实践操作. 你能够喜欢我们的课程,让我们感到异常高兴,我们也非常欢迎你将本课程分享给更多的人,我们唯一的要求就是请保留我们的课程原文链接. 一.实验描述 SQL注入漏洞的代码注入技术,利用web应用程序和数据库服务器之间的接口.通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意

SQL注入的测试方法

简介 Web应用程序的数据存储与读取通过数据库完成,而这些读写的操作通过SQL语句实现.实际项目中可能因为开发人员的疏忽或经验问题,未对用户可输入的参数进行严格地校验,导致用户可能恶意地将SQL命令带入数据库执行,实现注入的目的. SQL注入的条件 参数中含有SQL语句,并可以带入数据库正常执行 Web应用程序和数据库的交互中,必须有参数加入请求传递至数据库 SQL注入的方法 1. 搜索型参数 判断是否存在SQL注入漏洞,需满足以下四步: http://127.0.0.1/sql.php?Par

网站如何防止sql注入攻击的解决办法

首先我们来了解下什么是SQL注入,SQL注入简单来讲就是将一些非法参数插入到网站数据库中去,执行一些sql命令,比如查询数据库的账号密码,数据库的版本,数据库服务器的IP等等的一些操作,sql注入是目前网站漏洞中危害最大的一个漏洞,受攻击的网站占大多数都是sql注入攻击. sql注入攻击用英语来讲Structured Query Language,在网站的编程语言当中是一种比较另类的网站开发语言,我们网站安全行业通常来讲sql是用来数据库查询的一种网站开发语言,同时也是一种脚本文件的一个文件名,

网站如何防止sql注入×××的解决办法

首先我们来了解下什么是SQL注入,SQL注入简单来讲就是将一些非法参数插入到网站数据库中去,执行一些sql命令,比如查询数据库的账号密码,数据库的版本,数据库服务器的IP等等的一些操作,sql注入是目前网站漏洞中危害最大的一个漏洞,受×××的网站占大多数都是sql注入×××. sql注入×××用英语来讲Structured Query Language,在网站的编程语言当中是一种比较另类的网站开发语言,我们网站安全行业通常来讲sql是用来数据库查询的一种网站开发语言,同时也是一种脚本文件的一个文