当前位置: 代码迷 >> ASP.NET >> asp.net登陆有关问题
  详细解决方案

asp.net登陆有关问题

热度:8438   发布时间:2013-02-25 00:00:00.0
asp.net登陆问题
是不是,用参数化(比如存储过程),这样写代码,就能有效去掉带有非法字母比如',如果用sql语句拼接的话,还要过滤下非法字母比如',txtName.replace(''','"'),还能防注入,比如输个什么根本不存在的账号和密码也能登陆进去,请问是这样理解的吗

------解决方案--------------------------------------------------------
推荐楼主不要用字符串的拼接方法
------解决方案--------------------------------------------------------
参数化 简单的来说是把所有传入的“东西”当字符串来处理而不是 “关键字”

------解决方案--------------------------------------------------------
被注入的地方, 无非就是 查询, 和 ie地址里输入。 而 SQL 语句 每个关键字必须得有空格分隔。如果你在接受查询或者 URL的时候 。 去处 空格、/**/、%20、' 把这4个去排除我估计没什么了
------解决方案--------------------------------------------------------
要查询数据库的,,不可能登录进去的吧
------解决方案--------------------------------------------------------
拼接SQL 没什么, 关键字 必须有空格的。 而故意注入SQL语句 要在查询的地方,或者 URL 转发的时候去添加 关键字+空格+条件 。 你在接受url转发的时候, 排除 空格、/**/、%20、单引号。 就可以了,
------解决方案--------------------------------------------------------
百度下,什么叫SQL注入,看过后,在看你现在的登录问题!
------解决方案--------------------------------------------------------
参数化sql语句。

C# code
                sqlStr = "select * from vw_member_info_web where mobile = :mobile and password = :pwd or lic_no = :mobile and password = :pwd";                OracleParameter[] prams = { new OracleParameter(":mobile", userName), new OracleParameter(":pwd", DESEncrypt.Encrypt(pwd)) };
  相关解决方案