zoukankan      html  css  js  c++  java
  • sql 登录注入

    DataTable dt= SqlHelper.ExecuteDataTable(System.Data.CommandType.Text, String.Format("select * from Automation_User where userName='{0}' and password='{1}'", userName, password), null);

    如果是拼接式sql登录的话很容易进行sql注入

    'or'1'='1

    所以登录的sql尽量写成参数化,

    using (SqlConnection cnn = new SqlConnection(con))
    {
    using (SqlCommand cmd = cnn.CreateCommand())
    {
    try
    {
    cmd.CommandText = "select * from User where username=@username and password=@password";
    cmd.Parameters.Add(new SqlParameter("@username", username));
    cmd.Parameters.Add(new SqlParameter("@password", password));
    SqlDataAdapter da = new SqlDataAdapter();
    DataSet ds = new DataSet();
    da.SelectCommand = cmd;
    da.Fill(ds);
    cnn.Close(); //记得要加上 关闭
    if (ds.Tables[0].Rows.Count > 0)
    {
    type = Convert.ToInt32(ds.Tables[0].Rows[0]["type"]);
    }
    }
    catch (Exception ex)
    {
    // type = -2;
    logInstance.Info(string.Format("登录出现异常,异常信息为:{0}",ex.Message));
    }
    }
    }

    //参数化时,单引号和双引号都会被转义

  • 相关阅读:
    SQLyog快捷键
    程序员常用工具下载地址及方式
    mysql基础命令
    Excel常用快捷键
    PS快捷键
    MySQL安装及配置
    Excel常用公式
    数据库函数
    mysql update语句的用法
    MySQL使用存储过程批量更新数据库所有表某个字段值
  • 原文地址:https://www.cnblogs.com/yangjinwang/p/4647948.html
Copyright © 2011-2022 走看看