zoukankan      html  css  js  c++  java
  • Sql server注入简单认识

    登录界面常常会涉及到敏感关键字的注入

    为了对应面试,再看一下

    怎样防止注入,

    可以过滤SQL需要参数中的敏感字符(忽略大小写)

    public static string Split(string inputString) //防止SQL注入方法
    {
    inputString = inputString.Trim();
    inputString = inputString.Replace("'","");
    inputString = inputString.Replace(";--", "");
    inputString = inputString.Replace("--", "");
    inputString = inputString.Replace("=", "");
    //and|exec|insert|select|delete|update|chr|mid|master|or|truncate|char|declare|join|count|*|%|union 等待关键字过滤
    //不要忘记为你的用户名框,密码框设定 允许输入的最多字符长度 maxlength的值哦,这样他们就无法编写太长的东西来再次拼成第一次过滤掉的关键字 如 oorr一次replace过滤后又成了 or 喔。
    inputString = inputString.Replace("and", "");
    inputString = inputString.Replace("exec", "");
    inputString = inputString.Replace("insert", "");
    inputString = inputString.Replace("select", "");
    inputString = inputString.Replace("delete", "");
    inputString = inputString.Replace("update", "");
    inputString = inputString.Replace("chr", "");
    inputString = inputString.Replace("mid", "");
    inputString = inputString.Replace("master", "");
    inputString = inputString.Replace("or", "");
    inputString = inputString.Replace("truncate", "");
    inputString = inputString.Replace("char", "");
    inputString = inputString.Replace("declare", "");
    inputString = inputString.Replace("join", "");
    inputString = inputString.Replace("count", "");
    inputString = inputString.Replace("*", "");
    inputString = inputString.Replace("%", "");
    inputString = inputString.Replace("union", "");
    return inputString;
    }
            #region 过滤SQL,所有涉及到输入的用户直接输入的地方都要使用
            /// <summary> 
            /// 过滤SQL,所有涉及到输入的用户直接输入的地方都要使用。 
            /// </summary> 
            /// <param name="text">输入内容</param> 
            /// <returns>过滤后的文本</returns> 
            public static string filterSQL(string text)
            {
                text = text.Replace("'", "''");
                text = text.Replace("{", "{");
                text = text.Replace("}", "}");
    
                return text;
            }
            #endregion
            #region 过滤SQL,将SQL字符串里面的(')转换成(''),再在字符串的两边加上(')
            /// <summary> 
            /// 将SQL字符串里面的(')转换成(''),再在字符串的两边加上(')。 
            /// </summary> 
            /// <param name="text">输入内容</param> 
            /// <returns>过滤后的文本</returns> 
            public static String GetQuotedString(String text)
            {
                return ("'" + filterSQL(text) + "'");
            }
            #endregion
           

    防注入参数化过程实例:

            public static void Paramter(string getdataSql, string template, object parameters)
            {
                if (!string.IsNullOrEmpty(getdataSql))
                {
                    CallContext.SetData(getdataSql, new KeyValuePair<string, object>(template, parameters));
                }
            }
    
    
            private long ExecuteScalar(string sql)
            {
                using (
                   IDbConnection dbConnection =
                       new SqlConnection(_unitOfWork.DbConnectionString))
                {
                    try
                    {
                        dbConnection.Open();
                        var command = dbConnection.CreateCommand();
                        command.CommandText = sql;
                        command.CommandType = CommandType.Text;
                        object obj = command.ExecuteScalar();
                        long result = default(long);
                        if (null != obj)
                        {
                            result = Convert.ToInt64(obj);
                        }
                        return result;
                    }
                    finally
                    {
                        dbConnection.Close();
                    }
                }
            }
    View Code

  • 相关阅读:
    dedecms织梦建站总结
    ubuntu安装
    git命令
    关于测试日报
    Appium环境搭建(Windows版)
    jmeter,CSV数据加载、数据库连接、正则
    jmeter,参数、Bean Shell断言
    jmeter安装和组件说明
    造数据
    WEB UI自动化
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/5010841.html
Copyright © 2011-2022 走看看