网站数据连接字符串防止注入式攻击


  

ConnectionString容易发生类似于SQL 注入式攻击,因为攻击者可以在连接字符串中通过分号(;)来加入其它参数。 例如:连接字符串通过下面方式拼接:
stirng connectionString="Server=(local);Initial Catalog=yourDatabase;User ID=username;Password="+textbox1.Text;
其中需要在textbox1中输入密码。现在假如有人输入:
rightpassword;Pooling=true;Min Pool Size=999999;Max Pool Size=999999;
那么拼接后的连接字符串就是

stirng connectionString="Server=(local);Initial Catalog=yourDatabase;User ID=username;Password=rightpassword;Pooling=true;Min Pool Size=999999;Max Pool Size=999999;
现在只要连上数据库那么也许你服务器应该承受不了999999个连接池吧。
要解决这个问题,防止注入式攻击,可以用System.Data.SqlClient.SqlConnectionStringBuilder来实现。builder中的内容会整体作为值来处理。下例中password的值就是"AdventureWorks;NewValue=Bad",而不会被解析成新的参数。
Code
System.Data.SqlClient.SqlConnectionStringBuilder builder = new
System.Data.SqlClient.SqlConnectionStringBuilder();
  builder["Data Source"] = "(local)";
  builder["integrated Security"] = true;
  builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";
  Console.WriteLine(builder.ConnectionString);
//输出结果:
data source=(local);Integrated Security=True; initial
catalog="AdventureWorks;NewValue=Bad"

 


www.jxgzseo.cn

 

赣州金宇网络营销策划有限公司为江西蜘蛛网络营销旗下品牌,主要为赣州企业提供提供:赣州网站建设,南康网站建设,赣州网站设计,赣州做网站,赣州网络公司,赣州虚拟主机,赣州域名注册。

赣州金宇网络营销策划有限公司为赣州十八县市提供营销型网站建设,赣州网站优化,赣州SEO,赣州网络推广,赣州网站推广等服务。www.jxgzseo.cn

关于我们 | 联系方式 | 付款方式 | 招聘信息 | 客户案例 | 新闻中心 | 营业执照