asp.net防sql注入

作者&投稿:东方骅 (若有异议请与网页底部的电邮联系)
asp.net中怎样防止SQL语句的注入,比如说登录的SQL语句怎么写。~

把参数封装到sqlparameter数组中。。把sqlparameter数组类型作为参数类型,如,
public static User GetAdminUserByLoginId(string loginId)
{
string sql = "SELECT * FROM users WHERE LoginId = @LoginId and UserRoleId=@RoleId";


SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@LoginId", loginId),
new SqlParameter("@RoleId", 3)
};
,在userhelper里:
public static SqlDataReader GetReader(string sql, params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(sql, Connection);
cmd.Parameters.AddRange(values);
SqlDataReader reader = cmd.ExecuteReader();
return reader;
}

有点说不清楚,表达能力比较差,你凑合看

一般就是把sql的关键字和单引号全都replace掉。
然后在用户输入的变量外面多加一层括号,这样就不容易注入了。
但是如果你的机器被人入侵,那就不是sql解决的问题了

防止注入式攻击的方法:
http://hi.baidu.com/hkbrian/blog/item/1f69f8eb1e88d4d5d439c94e.html
其他安全注意:
以前看过的一篇文章:
1. 登录页面必须加密

有很多次,笔者看到一些站点在用户的认证完成后仅使用SSL(即在URL中使用https协议),这真令人不安。在登录之后实施加密有可能有用,这就像把大门关上以防止马儿跑出去一样,不过他们并没有对登录会话加密,这就有点儿像在你锁上大门时却将钥匙放在了锁眼里一样。即使你的登录会话被传输到了一个加密的资源,在许多情况下,这仍有可能被一个恶意的黑客攻克,他会精心地伪造一个登录表单,借以访问同样的资源,并访问敏感数据。

2. 数据有效性、合法性检查必须在服务器端完成

许多Web表单包含一些JavaScript的数据合法性、有效性检查。如果这种合法性检查包括目的在于提供改善的安全性的任何内容, 那么这种合法性检查几乎毫无用处。一个恶意的黑客可以在网页的表单活动中伪造一个自己的表单,而这并不会包括任何的合法性检查。更糟的是,在许多情况下,通过在浏览器中禁用JavaScript或使用一个并不支持JavaScript的浏览器,这种JavaScript的有效性、合法性检查就形同虚设。有时,笔者看到一些登录页面的口令合法性检查是在客户端完成的,这会将口令暴露给终端用户,他可以查看页面的源代码;或者,这种页面允许终端用户调整表单以使其总可以报告成功的合法性检查。请不要让你的网站安全成为客户端数据合法性检查的牺牲品。而服务器端的合法性和有效性检查并不存在客户端检查的缺点,因为黑客必须获得对服务器的访问权才能损害它。

3. 通过加密连接管理你的站点

使用不加密的连接(或仅使用轻度加密的连接),如使用不加密的FTP或HTTP用于Web站点或Web服务器的管理,就会将自己的大门向“中间人”攻击和登录/口令的嗅探等手段敞开大门。因此 请务必使用加密的协议,如SSH等来访问安全资源,要使用经证实的一些安全工具如OpenSSH等。否则,一旦某人截获了你的登录和口令信息,他就可以执行你可做的一切操作。

4. 使用强健的、跨平台的兼容性加密

根据目前的发展情况,SSL已经不再是Web网站加密的最先进技术。可以考虑TLS,即传输层安全,它是安全套接字层加密的继承者。要保证你所选择的任何加密方案不会限制你的用户基础。同样的原则也适用于后端的管理,在这里SSH等跨平台的强加密方案要比微软的Windows远程桌面等较弱的加密工具要更可取、更有优越性。

5. 从一个安全有保障的网络连接

避免从安全特性不可知或不确定的网络连接,也不要从安全性差劲的一些网络连接,如一些开放的无线访问点等。无论何时,只要你必须登录到服务器或Web站点实施管理,或访问其它的安全资源时,这一点尤其重要。如果你连接到一个没有安全保障的网络时,还必须访问Web站点或Web服务器,就必须使用一个安全代理,这样你到安全资源的连接就会来自于一个有安全保障的网络代理。

6. 不要共享登录的机要信息

共享登录机要信息会引起诸多安全问题。这不但适用于网站管理员或Web服务器管理员,还适用于在网站拥有登录凭证的人员,客户也不应当共享其登录凭证。登录凭证共享得越多,就越可能更公开地共享,甚至对不应当访问系统的人员也是如此;登录机要信息共享得越多,要建立一个跟踪索引借以跟踪、追查问题的源头就越困难,而且如果安全性受到损害或威胁因而需要改变登录信息时,就会有更多的人受到影响。

7. 采用基于密钥的认证而不是口令认证

口令认证要比基于密钥的认证更容易被攻破。设置口令的目的是在需要访问一个安全的资源时能够更容易地记住登录信息。不过如果使用基于密钥的认证,并仅将密钥复制到预定义的、授权的系统(或复制到一个与授权的系统相分离的独立介质中,直接需要它时才取回。),你将会得到并使用一个更强健的难于破解的认证凭证。

8. 维护一个安全的工作站

如果你从一个客户端系统连接到一个安全的资源站点,而你又不能完全保证其安全性,你就不能保证某人并没有在监听你所做的一切。因此键盘记录器、受到恶意损害的网络加密客户以及黑客们的其它一些破坏安全性的伎俩都会准许某个未得到授权的个人访问敏感数据,而不管网络是否有安全措施,是否采用加密通信,也不管你是否部署了其它的网络保护。因此保障工作站的安全性是至关重要的。

9. 运用冗余性保护网站

备份和服务器的失效转移可有助于维持最长的正常运行时间。虽然失效转移可以极大地减少服务器的宕机时间,但这并不是冗余性的唯一价值。用于失效转移计划中的备份服务器可以保持服务器配置的最新,这样在发生灾难时你就不必从头开始重新构建你的服务器。备份可以确保客户端数据不会丢失,而且如果你担心受到损害系统上的数据落于不法之徒手中,就会毫不犹豫地删除这种数据。当然,你还必须保障失效转移和备份方案的安全,并定期地检查以确保在需要这些方案时不至于使你无所适从。

10. 确保对所有的系统都实施强健的安全措施,而不仅运用特定的Web安全措施

在这方面,可以采用一些通用的手段,如采用强口令,采用强健的外围防御系统,及时更新软件和为系统打补丁,关闭不使用的服务,使用数据加密等手段保证系统的安全等。

字符:
',select,union,insert,update,join等
数据库操作时采用参数方式,能增加安全。

应该注意COOKIE注入


球好玩动作类游戏,并地址
http:\/\/bbs.taclub.net\/tabbs\/cgi-bin\/topic.cgi?forum=3&topic=236&show=0 45.铁甲风暴 http:\/\/www.ayxz.com\/down.asp?id=7036&no=1 46.绝地风暴 http:\/\/www.china1000.net\/downinfo\/23689.html 47.绝地风暴2 http:\/\/www.china1000.net\/downinfo\/22969.html 48.红警3 http:\/\/61.158.132.100\/tab...

急.我的卡巴斯基杀毒软件的使用期限快到了,谁能帮我延长啊?谢了_百度...
http:\/\/www.box.net\/public\/n7qvvgah2khttp:\/\/www.box.net\/public\/eqmddgg9hx我帮你传了俩个,到2007.7.16在界面上选“服务”点最下面到期时间,在弹出的窗口中,添加KEY 本回答被提问者采纳 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 匿名用户 2006-11-29 展开全部 1GUFS-ZE4X6-3T2MX-...

谁能介绍几款好玩的ARPG游戏啊,类似伊苏6,和暗黑的,要中文版的...
killer_sp_demo3.zip 41.夺还机构 http:\/\/kagami.pettanko.net\/arkham\/luvdata\/movie\/luv_demo.lzh 42.龙珠Z-悟空的遗产2 http:\/\/emu.egamecn.com\/download\/soft\/roms\/gba\/1056.zip 43.索尼克英雄PC版 ftp:\/\/218.30.23.102\/gametom\/down5\/demo\/20041018_heroes_trial.zip 44.敌后敢死队 http:\/\/www.ne...

弹琴游戏网址&歌谱
qqqqqqpo lmoooomq qqqqstsqp lpppppsq qqrs oopq llmoqpsq qqrs oopq llmoqpoo opqrsssrqrss ssssvtsq qqpo opm moppppqp pqrsssrqrss ssssvtsq qqpo opm mopqqqqpom qqqqqqpo lmoooomq qqqqstsqp lpppppsq qqrs oopq llmoqpsq qqrs oopq llmoqpoo opqrsssrqrss ssssvtsq qqpo opm moppppqp op...

什么游戏好玩
killer_sp_demo3.zip 41.夺还机构 http:\/\/kagami.pettanko.net\/arkham\/luvdata\/movie\/luv_demo.lzh 42.龙珠Z-悟空的遗产2 http:\/\/emu.egamecn.com\/download\/soft\/roms\/gba\/1056.zip 43.索尼克英雄PC版 ftp:\/\/218.30.23.102\/gametom\/down5\/demo\/20041018_heroes_trial.zip 44.敌后敢死队 http:\/\/www....

求单机游戏
killer_sp_demo3.zip 41.夺还机构 http:\/\/kagami.pettanko.net\/arkham\/luvdata\/movie\/luv_demo.lzh 42.龙珠Z-悟空的遗产2 http:\/\/emu.egamecn.com\/download\/soft\/roms\/gba\/1056.zip 43.索尼克英雄PC版 ftp:\/\/218.30.23.102\/gametom\/down5\/demo\/20041018_heroes_trial.zip 44.敌后敢死队 http:\/\/www....

地狱邻居1和2下载
http:\/\/www.china1000.net\/downinfo\/13890.html http:\/\/bt.babeijiu.com\/view.php?id=54 http:\/\/www.china1000.net\/downinfo\/13890.html 12.仙剑奇侠传2: http:\/\/down.sqnn.com\/soft\/150.htm http:\/\/www.gamestate.cn\/hero\/xjq7\/GameDown\/ http:\/\/www.babeijiu.com\/bbjt\/226\/2004s1n10o0d06d...

安装游戏时遇到的问题
killer_sp_demo3.zip 41.夺还机构 http:\/\/kagami.pettanko.net\/arkham\/luvdata\/movie\/luv_demo.lzh 42.龙珠Z-悟空的遗产2 http:\/\/emu.egamecn.com\/download\/soft\/roms\/gba\/1056.zip 43.索尼克英雄PC版 ftp:\/\/218.30.23.102\/gametom\/down5\/demo\/20041018_heroes_trial.zip 44.敌后敢死队 http:\/\/www....

撕裂重罪(版本不限)2P的A B C D 分别是什么?
http:\/\/www.china1000.net\/downinfo\/13890.html 12.仙剑奇侠传2: http:\/\/down.sqnn.com\/soft\/150.htm 13.阿猫阿狗: http:\/\/www.lygame.com\/content.asp?id=11 14.游戏王5双重恶魔: http:\/\/www.1dgame.com\/soft\/2748.htm 15.游戏王地牢方块妖怪: www.1dgame.com\/soft\/2724.htm 16.游戏王混乱之...

帮我找回个单机游戏(像跑跑.疯狂一样)悬赏200追加50!
http:\/\/www.china1000.net\/downinfo\/13890.html 12.仙剑奇侠传2: http:\/\/down.sqnn.com\/soft\/150.htm 13.阿猫阿狗: http:\/\/www.lygame.com\/content.asp?id=11 14.游戏王5双重恶魔: http:\/\/www.1dgame.com\/soft\/2748.htm 15.游戏王地牢方块妖怪: www.1dgame.com\/soft\/2724.htm 16.游戏王混乱之...

邢台市13837906288: asp 防止SQL注入方式 -
蔽芬中华: 这个问题曾遇到过,以解决.具体的网上有很多,现贴出来,希望对你有所帮助.<br>如果编写通用的SQL防注入程序一般的http请求不外乎get 和 post,所以只要我们在文件中过滤所有post或者get请求中的参数信息中非法字符即可,所以我们...

邢台市13837906288: asp.net 怎么防止SQL注入攻击啊???
蔽芬中华: 分步实施提要 第一步. 使用ASP.NET 请求校验. 第二步. 使用权用约束输入. 第三步. 对不安全的输入进行编码. 第四步. 对Sql语句使用命令参数方式. 第五步. 验证ASP.NET的错误没有被返回客户端. 额外的资源 这个具体网址 你去看看 里面有很详细的介绍 http://bbs.51aspx.com/showtopic.aspx?topicid=4784

邢台市13837906288: ASP.NET中如何防范SQL注入式攻击 -
蔽芬中华: 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表...

邢台市13837906288: asp.net如何有效防止SQL注入攻击 -
蔽芬中华: 1. 以最少的SQl语句获取表中所有数据,存放到本地内存中 例如:select *from user 这句一般就不会被SQl注入,一般是安全的 2. 将上面的表存放到datatable中. 3. 在datatable中检索有用的数据,然后添加到一个List<user>中,List<user>中就存...

邢台市13837906288: asp.net中怎样防止SQL语句的注入,比如说登录的SQL语句怎么写. -
蔽芬中华: 把参数封装到sqlparameter数组中..把sqlparameter数组类型作为参数类型,如,public static User GetAdminUserByLoginId(string loginId) { string sql = "SELECT * FROM users WHERE LoginId = @LoginId and UserRoleId=@RoleId"; ...

邢台市13837906288: asp.net怎么能够更好的防止sql注入式攻击? -
蔽芬中华: 1、代码的严谨,尤其是与数据库链接的代码,现在一般都是写在web.config中,这在一定的程度上也起到了防攻击.2、你的数据库模型设计的更加严谨一些,一个是增加可读性,一个是对关键字段的识别.3、当然,还有其他一些防止sql注入式攻击的手段,这些都是你在平时写代码的时候不自觉的都会加入这些元素的.只是有时候你不知道它的名字而已.

邢台市13837906288: 在ASP.Net怎么防止SQL注入? -
蔽芬中华: <script> 这样的标签 在插入数据库的时候 一定要替换成掉的写一个方法,用来处理 文本编辑器返回的字符 /// <summary> /// 返回文本编辑器替换后的字符串 /// </summary> /// <param name="str">要替换的字符串</param> /// <returns></returns>...

邢台市13837906288: ASP.NET 防范 SQL注入式攻击 -
蔽芬中华: 你用的是参数,没有直接把获得的字符串放到SQL代码里,所以注入的代码不起使用.

邢台市13837906288: 求教高手 - -----Asp.Net中如何防止SQL注入,即如何过滤关键字 -
蔽芬中华: 替换单引号,即把所有单独出现的单引号改成两个单引号,防止攻击者修改SQL命令的含义.再来看前面的例子,"select * from Users where login = ''' or ''1''=''1' AND password = ''' or ''1''=''1'"显然会得到与...

邢台市13837906288: asp sql 请问防注入问题
蔽芬中华: 主要就是预防单引号 如下: select * from user where username= ' abc ' 这里的abc为字符串,所以必须用单引号包含着. 但是: select * from user where username= ' a ' bc ' 这里的字符串中包含了单引号,导致数据库会识别不了,并提示防注入错误,所以就必须为字符串中的单引号进行替换.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网