首页 > 数据库 >aps .net sql注入漏洞修复

aps .net sql注入漏洞修复

时间:2022-11-09 16:37:05浏览次数:47  
标签:End aps Safe System Write sql net Response 360

sqlmap有缓存真的坑

工具类:

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Web;

/// <summary>
/// safe_360 的摘要说明
/// </summary>
public class Safe_360
{

    private const string StrRegex = @"<[^>]+?style=[\w]+?:expression\(|\b(alert|confirm|prompt)\b|^\+/v(8|9)|<[^>]*?=[^>]*?&#[^>]*?>|\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|/\*.+?\*/|<\s*script\b|<\s*img\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";//|(?<=\()[^}]*(?=\))
    public static bool PostData()
    {
        bool result = false;
        for (int i = 0; i < HttpContext.Current.Request.Form.Count; i++)
        {
            result = CheckData(HttpContext.Current.Request.Form[i].ToString());
            if (result)
            {
                break;
            }
        }
        return result;
    }

    public static bool GetData()
    {
        bool result = false;
        for (int i = 0; i < HttpContext.Current.Request.QueryString.Count; i++)
        {
            result = CheckData(HttpContext.Current.Request.QueryString[i].ToString());
            if (result)
            {
                break;
            }
        }
        return result;
    }
    public static bool CookieData()
    {
        bool result = false;
        for (int i = 0; i < HttpContext.Current.Request.Cookies.Count; i++)
        {
            result = CheckData(HttpContext.Current.Request.Cookies[i].Value.ToLower());
            if (result)
            {
                break;
            }
        }
        return result;

    }
    public static bool Referer()
    {
        bool result = false;
        return result = CheckData(HttpContext.Current.Request.UrlReferrer.ToString());
    }
    public static bool CheckData(string inputData)
    {
        if (Regex.IsMatch(inputData, StrRegex, RegexOptions.IgnoreCase))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

Global.asax

        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            if (Request.Cookies != null)
            {
                if (Safe_360.CookieData())
                {
                    Response.Write("您提交的Cookie数据有恶意字符!");
                    Response.End();

                }

            }
            if (Request.UrlReferrer != null)
            {
                if (Safe_360.Referer())
                {
                    Response.Write("您提交的Referrer数据有恶意字符!");
                    Response.End();
                }
            }
            if (Request.RequestType.ToUpper() == "POST")
            {
                if (Safe_360.PostData())
                {
                    Response.Write("您提交的Post数据有恶意字符!");
                    Response.End();
                }
            }
            if (Request.RequestType.ToUpper() == "GET")
            {
                if (Safe_360.GetData())
                {
                    Response.Write("您提交的Get数据有恶意字符!");
                    Response.End();
                }
            }
        }  
  

标签:End,aps,Safe,System,Write,sql,net,Response,360
From: https://www.cnblogs.com/TTonly/p/16874228.html

相关文章

  • mysql批量制造数据
    DELIMITER$$CREATEPROCEDUREprocess_test3()BEGINDECLAREyouridINT;SETyourid=100000;WHILEyourid<2000000DOINSERTINTOtt(order_no)VALUES(yourid)......
  • 使用kubeadm+calico部署kubernetes v1.25.3
    1、环境准备主机名IP地址系统版本k8s-master01k8s-master01.wang.orgkubeapi.wang.orgkubeapi10.0.0.101Ubuntu2004k8s-master02k8s-master02.wang.o......
  • VS_QT——连接MySQL数据库
    原文链接连接2链接3           ......
  • Kubernetes集群YAML文件简介
    概述k8s集群中对资源管理和资源对象编排部署都可以通过声明样式(YAML)文件来解决,也就是可以把需要对资源对象操作编辑到YAML格式文件中,我们把这种文件叫做资源清单文件,通......
  • mysql rpm安装
    目录mysqlrpm安装安装包下载安装mysqlmysqlrpm安装安装包下载官网:https://dev.mysql.com/downloads/mysql/下载完成后你应该拥有下面四个包文件安装mysql//安装......
  • Kubernetes集群管理工具kubectl简介
     概述kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署 命令格式kubectl[command][type][na......
  • mysql mysqldump常见报错
    目录mysqlmysqldump常见报错ERROR2006(HY000)atline5922:MySQLserverhasgoneawaymysqlmysqldump常见报错ERROR2006(HY000)atline5922:MySQLserverha......
  • 【Python】sqlite模块_连接sqlite数据库
    内置库sqlite#引用importsqlite 创建/打开数据库conn=sqlite3.connect(dbName+".db",check_same_thread=False)#尝试打开数据库文件,不存在则创建数据库......
  • Docker安装Mysql8
    ​​CentOS7.9安装Docker​​拉取mysql镜像搜寻仓库里面有那些镜像dockersearchmysql我们拉取mysql:latest的镜像dockerpullmysql:latest查看镜像但是我们不知道m......
  • windows版数据库mysql的安装
    一、下载MySQLMysql官网下载地址:MySQL::DownloadMySQLInstaller(ArchivedVersions)1.选择要安装的版本,本篇文章选择的是5.7.31版本,点击Download下载 正在上传......