zoukankan      html  css  js  c++  java
  • 防SQL注入

    在一个登录界面,有时候会有人恶意进行SQL攻击,比如输入用户名,密码的时候在用户名里面输入“1 or 1=1 ' -- ”,密码随意输入。

    所以一般在程序里面要防止这种攻击,采取的方式为:

            //过滤特征字符
            private const string StrKeyWord = @"select|insert|delete|from|count(|drop table|update|truncate|asc(|mid(|char(|xp_cmdshell|exec|master|net local group administrators|net user|or|and";
            private const string StrRegex = @"-|;|,|/|(|)|[|]|{|}|%|@|*|'|!";
    
            ///<summary>
            ///检查字符串中是否包含Sql注入关键字
            /// <param name="_key">被检查的字符串</param>
            /// <returns>如果包含注入true;否则返回false</returns>
            ///</summary>
            private bool CheckKeyWord(string _key)
            {
                string[] pattenString = StrKeyWord.Split('|');
                string[] pattenRegex = StrRegex.Split('|');
                foreach (string sqlParam in pattenString)
                {
                    if (_key.Contains(sqlParam + " ") || _key.Contains(" " + sqlParam))
                    {
                        return true;
                    }
                }
                foreach (string sqlParam in pattenRegex)
                {
                    if (_key.Contains(sqlParam))
                    {
                        return true;
                    }
                }
                return false;
            }
    
  • 相关阅读:
    数论数论函数基础知识
    KMP入门和简单运用
    高斯消元入门
    FFT和NTT
    AC自动机入门和简单应用
    后缀自动机入门
    线段树优化建图的速成
    爱情九十七课,降低期待
    爱情九十二课,说出你的弱
    爱情八十六课,等得不是爱情
  • 原文地址:https://www.cnblogs.com/huang1990/p/3759538.html
Copyright © 2011-2022 走看看