如何有效的防止SQL连接字符串注入
概念:在编写安全代码时,最重要的规则之一就是“绝对不要盲目的相信用户的输入”。
利用ADO.NET 2.0的SqlConnectionStringBuilder类生成数据库连接字符串,它可以有效的防止“SQL连接字符串恶意注入”,因为这个类是专门为SQL SERVER设计的所以;它兼容旧式关键字。关于如何使用SqlConnectionStringBuilder类,请参考我以前写的一篇“智能数据库连接生成器”文章里。
防止SQL数据库连接字符串示例
C#后台示例代码:
SqlConnectionStringBuilder bldr = new SqlConnectionStringBuilder();
bldr.DataSource = @".\SQLExpress";
bldr.InitialCatalog = "Pubs";
bldr.UserID = textBox1.Text;
bldr.Password = textBox2.Text;
刚才看到前台用户在用户名输入的用户名字符串,就是恶意SQL注入,而SqlConnectionStringBuilder会把
“用户名;Data Source=Northwind”的字符串作为“UesrID”来登录数据库。这就防止恶意的注入了。
最后希望能和志同道合的开发同志,一起学习,一起分享。谢谢
推荐链接:惠普黑白激光打印机/爱普生针式打印机
相关文档:
getdate //获得系统当前日期
datepart //获取日期指定部分(年月日时分表)
getdate()函数:取得系统当前的日期和时间。返回值为datetime类型的。
用法:getdate()
例子:
select getdate() as dte,dateadd(day,-1,getdate()) as nowdat
输出结果:
dte nowdat
--------------------------- ----------------- ......
◆1、使用索引来更快地遍历表
缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:①.有大量重复值、且经常有范围查询(between, > ,< ,> =,< =)和order by、group by发生的列 ......
在SQL UPDATE语句中,对换两个变量的值,不需要临时变量。=右侧的值在整个UPDATE语句中都是一致的;所有的更新同时发生,而不是一个接着一个发生。
例如:
UPDATE offenceTeam
SET goalShooter=wingAttack,
& ......
问题描述:
为管理岗位业务培训信息,建立3个表:
S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄
C (C#,CN ) C#,CN 分别代表课程编号、课程名称
SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩
1. 使用标准SQL嵌套语句查询选修课程名称为&rsquo ......
在我们做数据库程序开发的时候,经常会遇到这种情况:需要将一个数据库服务器中的数据导入到另一个数据库服务器的表中。通常我们会使用这种方法:先把一个数据库中的数据取出来放到某出,然后再把这些数据一条条插入到目的数据库中,这种方法效率较低,写起程序来也很繁琐,容易出错。另外一种方法是使用bcp或BULK IN ......