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;
            }
    
  • 相关阅读:
    网络IO
    进程与线程
    计算机网络
    操作系统
    刷题笔记
    fasd
    线程池
    epoll反应堆
    read函数
    dup与dup2
  • 原文地址:https://www.cnblogs.com/huang1990/p/3759538.html
Copyright © 2011-2022 走看看