zoukankan      html  css  js  c++  java
  • .net 通用防注入代码 天高地厚

    using System;

    namespace web.comm
    {
        
    /// <summary>
        
    /// ProcessRequest 的摘要说明。
        
    /// </summary>

        public class ProcessRequest
        
    {
            
    public ProcessRequest()
            
    {
                
    //
                
    // TODO: 在此处添加构造函数逻辑
                
    //
            }


            
    #region SQL注入式攻击代码分析
            
    /// <summary>
            
    /// 处理用户提交的请求
            
    /// </summary>

            public static void StartProcessRequest()
            
    {
                
    //            System.Web.HttpContext.Current.Response.Write("<script>alert('dddd');</script>");
                try
                
    {
                    
    string getkeys = "";
                    
    //string sqlErrorPage = System.Configuration.ConfigurationSettings.AppSettings["CustomErrorPage"].ToString();
                    if (System.Web.HttpContext.Current.Request.QueryString != null)
                    
    {
        
                        
    for(int i=0;i<System.Web.HttpContext.Current.Request.QueryString.Count;i++)
                        
    {
                            getkeys 
    = System.Web.HttpContext.Current.Request.QueryString.Keys[i];
                            
    if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.QueryString[getkeys],0))
                            
    {
                                
    //System.Web.HttpContext.Current.Response.Redirect (sqlErrorPage+"?errmsg=sqlserver&sqlprocess=true");
                                System.Web.HttpContext.Current.Response.Write("<script>alert('请勿非法提交!');history.back();</script>");
                                System.Web.HttpContext.Current.Response.End();
                            }

                        }

                    }

                    
    if (System.Web.HttpContext.Current.Request.Form != null)
                    
    {
                        
    for(int i=0;i<System.Web.HttpContext.Current.Request.Form.Count;i++)
                        
    {
                            getkeys 
    = System.Web.HttpContext.Current.Request.Form.Keys[i];
                            
    if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.Form[getkeys],1))
                            
    {
                                
    //System.Web.HttpContext.Current.Response.Redirect (sqlErrorPage+"?errmsg=sqlserver&sqlprocess=true");
                                System.Web.HttpContext.Current.Response.Write("<script>alert('请勿非法提交!');history.back();</script>");
                                System.Web.HttpContext.Current.Response.End();
                            }

                        }

                    }

                }

                
    catch
                
    {
                    
    // 错误处理: 处理用户提交信息!
                }

            }

            
    /// <summary>
            
    /// 分析用户请求是否正常
            
    /// </summary>
            
    /// <param name="Str">传入用户提交数据</param>
            
    /// <returns>返回是否含有SQL注入式攻击代码</returns>

            private static bool ProcessSqlStr(string Str,int type)
            
    {
                
    string SqlStr;

                
    if(type == 1)
                    SqlStr 
    = "exec |insert |select |delete |update |count |chr |mid |master |truncate |char |declare ";
                
    else
                    SqlStr 
    = "'|and|exec|insert|select|delete|update|count|*|chr|mid|master|truncate|char|declare";

                
    bool ReturnValue = true;
                
    try
                
    {
                    
    if (Str != "")
                    
    {
                        
    string[] anySqlStr = SqlStr.Split('|');
                        
    foreach (string ss in anySqlStr)
                        
    {
                            
    if (Str.IndexOf(ss)>=0)
                            
    {
                                ReturnValue 
    = false;
                            }

                        }

                    }

                }

                
    catch
                
    {
                    ReturnValue 
    = false;
                }

                
    return ReturnValue;
            }

            
    #endregion



        }

    }

     

    不登高山,怎知天高;不临深溪,焉知地厚!站在坚实的土地上,做着生命中最真实的事情;像一棵挺拔的大树,认可自己的命运并敢于迎接属于这一方天空的风风雨雨。

  • 相关阅读:
    Android6.0-运行时权限处理
    Notification的基本用法以及使用RemoteView实现自定义布局
    Android Apk的反编译和加密
    SurfaceView的基本使用
    Java8部分新特性的学习
    Android的UI调优
    Builder模式详解及其在Android开发中的应用
    hex(x) 将整数x转换为16进制字符串
    oct(x) 将一个数字转化为8进制
    sum(iterable[, start]) 对集合求和
  • 原文地址:https://www.cnblogs.com/net2012/p/2823004.html
Copyright © 2011-2022 走看看