zoukankan      html  css  js  c++  java
  • 如何使用参数化查询防止Sql注入漏洞

    原程序如下:

    string sqlconString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True";
     Console.Write("请输入用户名:");
                string userName = Console.ReadLine();
                Console.Write("请输入密码:");
                string password = Console.ReadLine();
                using (SqlConnection conn = new SqlConnection(sqlconString))
                {
                    conn.Open();
                    using (SqlCommand cmd = conn.CreateCommand())
                    {
                        cmd.CommandText = "select count(*) from T_Users where UserName='" + userName + "' and Password='" + password + "'";//sql注入,当密码= 1' or '1'='1
                        int i = Convert.ToInt32(cmd.ExecuteScalar());
                        if (i>0)
                        {
                            Console.WriteLine("登入成功");
                        }
                        else
                        {
                            Console.WriteLine("用户名或密码错误");
                        }
                        
                    }
                }

    以上代码当用户输入密码为:1' or '1'='1    时,提示登入成功!

    所以必须使用参数化查询防止Sql注入漏洞,如下:

    使用参数化查询防止Sql注入漏洞

  • 相关阅读:
    activemq的两种基本通信方式的使用及总结
    EJBCA认证系统结构及相关介绍
    白话经典算法系列之一 冒泡排序的三种实现 【转】
    springcloud配置需要主要的地方
    Spring的RestTemplate
    mysql中的事务
    list去重
    webpack的使用
    rocketmq在linux搭建双master遇到的坑
    redis配置文件详解
  • 原文地址:https://www.cnblogs.com/lyfblog/p/1966157.html
Copyright © 2011-2022 走看看