登录SQL注入
发布日期:2021-11-09 22:51:15 浏览次数:31 分类:技术文章

本文共 1558 字,大约阅读时间需要 5 分钟。

在登录页面的账号密码的输入框中分别输入,这个值:1' or '1'='1

 

 一,验证的数据库语句,讲传人的值组合成数据库语句:

public DataTable CheckLogin(string name, string pwd)        {            string strSqlCom = "select *from UserInfo where Name = '" + name + "' and Pwd = '" + pwd + "'";            return _db.ExceTable(strSqlCom);        }

运行调试结果为:

 二,在SqlHelper中的代码为:

public DataTable ExceTable(string strCom) //该方法返回一个DataTable类型        {            try            {                SqlDataAdapter sda = new SqlDataAdapter(strCom, _sqlCon);                DataTable ds = new DataTable();                sda.Fill(ds);                return ds;            }            finally            {                _sqlCon.Close();            }        }

运行调试结果为:

 

三,返回验证登录代码为:

public bool CheckLogin(string name, string pwd)        {            DataTable ds = new DataTable();            ds = _login.CheckLogin(name, pwd);            if (ds.Rows.Count > 0)            {                return true;            }            else            {                return false;            }        }

运行调试结果为:

 

这是后可以显示,当输入以上条件,他将我数据库的用户表的所有用户都选出来了,则返回true,登录成功

 四,防止SQL注入方法:

1》初始化参数名和参数类型:参数化方法,参数类型的指定,能提高类型安全,有效防止SQL注入

       StringBuilder strSql = new StringBuilder();            strSql.Append("insert into UserInfo(");            strSql.Append("UsersName)");            strSql.Append(" values (");            strSql.Append("@UsersName)");            SqlParameter[] parameters = {
new SqlParameter("@UsersName", SqlDbType.VarChar,50)};       parameters[0].Value = model.UsersName;

 

转载于:https://www.cnblogs.com/May-day/p/5831605.html

转载地址:https://blog.csdn.net/dcujcivw769565/article/details/101260427 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:抽象,密封,多态和继承的例子
下一篇:MVC运行机制

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年03月26日 05时10分37秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章