sql防注入代码(asp)_asp防sql注入代码-程序员宅基地

技术标签: include  insert  microsoft  each  sql  asp  

<%

'将本页用include方法放在头部以让所有页都可以调用,比如include在conn.asp里
'如果有流式上传的页面请把该页加到表page中,以防form冲突
 
Dim N_no,N_noarray,req_Qs,req_F,N_i,N_dbstr,Conn,N_rs,N_userIP,N_thispage
N_userip = Request.ServerVariables("REMOTE_ADDR")
N_thispage = LCase(Request.ServerVariables("URL"))
N_no =  "'|;|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare" '可以自己修改怀疑是注入操作的字串
N_noarray = split(LCase(N_no),"|")

Call DBopen()
Call N_check_Qs()
Call N_checkPage()
Call DBCLose()

'检测当前页是否是特殊页是就调用 N_check_form()
sub N_checkPage()
 set N_rs = server.CreateObject("ADODB.RecordSet")
  N_rs.open "select * from page where spcpage like '%"&N_thispage&"%'",conn,1,1
  if  (N_rs.eof AND N_rs.Bof) then
   Call N_check_form()
  end if
  N_rs.Close()
 set N_rs = nothing
end sub
 
 
'检测给定字串
sub N_sql(agsql)
 '这里是不记录数据库,如果要改请自己修改
 N_check "CUS",req_Qs,"OTHER"
end sub
'检测Request.Form
sub N_check_form()
 If Request.Form<>"" Then
 For Each req_F In Request.Form
   N_check req_F,Request.Form(req_F),"POST"
 Next
 end if
end sub
'检测Request.QueryString
sub N_check_Qs()
 If Request.QueryString<>"" Then
  For Each req_Qs In Request.QueryString
   N_check req_Qs,Request.QueryString(req_Qs),"GET"
  Next
 end if
end sub
'检测
sub N_check(ag,agsql,sqltype)
 For N_i=0 To Ubound(N_noarray)
  If Instr(LCase(agsql),N_noarray(N_i))<>0 Then
  call N_regsql(ag,agsql,sqltype)
  Response.Write "MO"
  end if
 Next
end sub
'记录并停止输出
'ag 名称
'agsql 内容
'sqltype 类型
sub N_regsql(ag,agsql,sqltype)
 if(sqltype<>"OTHER") then
  Conn.Execute("insert into SqlIn(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ) values('"&N_userip&"','"&N_thispage&"','"&sqltype&"','"&ag&"','"&agsql&"')")
 end if
  Response.Write "<Script Language=JavaScript>alert('请不要在参数中包含非法字符尝试注入!');</Script>"
  Response.Write "<span style='font-size:12px'>非法操作!系统做了如下记录↓<br>"
  Response.Write "操作IP:"&N_userip&"<br>"
  Response.Write "操作时间:"&Now&"<br>"
  Response.Write "操作页面:"&N_thispage&"<br>"
  Response.Write "提交方式:"&sqltype&"<br>"
  Response.Write "提交参数:"&ag&"<br>"
  Response.Write "提交数据:"&agsql&"</span>"
   
  Response.end
end sub

Sub DBopen()
 N_dbstr="DBQ="+server.mappath("Sql.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
 Set Conn=Server.CreateObject("ADODB.CONNECTION")
 Conn.open N_dbstr
end SUB

Sub DBCLose()
 Conn.close
 Set Conn = Nothing
End sub
%>
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gaozhi0/article/details/1007035

智能推荐

python如何安装openpyxl模块,Python如何安装openai模块_怎么使用命令安装'openpyxl-程序员宅基地

文章浏览阅读478次,点赞9次,收藏8次。pip3.8(你自己的版本号).exe install C:\Users\HP\AppData\Local\Programs\Python\Python38\Scripts\opencv_python-4.5.5-cp38-cp38-win_amd64.whl(你自己的路径)2、根据对应python版本,去https://www.lfd.uci.edu/~gohlke/pythonlibs/,下载对应版本的opencv。我的python版本是3.8,64位,所以下载一下标红的链接。_怎么使用命令安装'openpyxl

C语言实现内存相关操作函数(memset、memcmp、memcpy、memmove)_与memset相似的函数-程序员宅基地

文章浏览阅读498次。C语言实现内存相关操作函数(memset、memcmp、memcpy、memmove)目录:1.memset()函数2.memcmp()函数3.memcpy()函数4.memmove()函数一、memset()函数(1)函数原型:void my_memset(void ptr, int value, size_t num);**(2)功能:初始化内存空间(3)代码:#include <stdio.h>#include <string.h>#include &l_与memset相似的函数

汇编上机实验-程序员宅基地

文章浏览阅读998次,点赞24次,收藏9次。5.从DS:1000H开始存放有一个字符串”This is a string”,要求把这个字符串从后往前传送到DS:2000H开始的内存区域中(即传送结束后,从DS:2000H开始的内存单元的内容为”gnirts a si sihT”),试编写程序段并上机验证之。1.设AX寄存器中的内容为1111H,BX寄存器中的内容为2222H,DS:0010H单元中的内容为3333H。将AX寄存器中的内容与BX寄存器中的内容交换,然后再将BX寄存器中的内容与DS:0010H单元中的内容进行交换。

webUpload组件实现文件上传功能和下载功能_webuploader 0.1.5-程序员宅基地

文章浏览阅读392次。参考文章:http://blog.ncmem.com/wordpress/2023/09/14/webupload%e7%bb%84%e4%bb%b6%e5%ae%9e%e7%8e%b0%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%e5%8a%9f%e8%83%bd%e5%92%8c%e4%b8%8b%e8%bd%bd%e5%8a%9f%e8%83%bd/systemConfig.properties文件。java后端downloadServlet代码。_webuploader 0.1.5

TSINGSEE青犀AI智能分析网关V4的人员摔倒检测算法及应用-程序员宅基地

文章浏览阅读782次,点赞18次,收藏9次。在安全监控领域,人员摔倒检测算法可以应用于工厂、工地等场所,实时监控工人的安全状况。一旦发生摔倒等意外事件,系统可以迅速发出警报,提醒管理人员及时采取救援措施,保障工人的生命安全。

c语言加密字符串正序变倒序,MD5加密(自能加密,不能解密)-程序员宅基地

文章浏览阅读462次。1.必须导入系统的头文件2.//MD5加密 为字符串加密-(void)md5{//1.需要加密的内容NSString str = @"我的iOS老师是最帅";//2.将数据转换为data类型 因为系统提供的md5加密的函数为C语言函数,所以需要将OC的字符串转换成C语言的字符串const char sourceData = [str UTF8String];//3.C语言的char类型的数组,..._md5_digest_length

随便推点

ObjectARX2012错误1 fatal error C1083: 无法打开包括文件:“arxHeaders.h”: No such file or directory; fatal error...-程序员宅基地

文章浏览阅读1.3k次。问题1:fatal error C1083: 无法打开包括文件:“arxHeaders.h”: No such file or directory;解决办法:这个问题很明显,是因为没有在工程属性里包含相关的库目录和头文件目录所致。在包含目录里添上包含目录路径:D:\ObjectARX_2012_Win_64_and_32Bit\inc-x64;D:\ObjectARX_2012_Win_64_..._无法打开包括文件:“arxheaders.h”: no such file or directory

10只老鼠与1000瓶药水_有1000瓶水,其中一瓶是毒药,全都无色无味。给10只小白鼠 ,小白鼠喝到毒药3-程序员宅基地

文章浏览阅读8.3k次,点赞6次,收藏3次。题目:1000 瓶无色无味的药水,其中有一瓶毒药,10只小白鼠拿过来做实验。喝了无毒的药水第二天没事儿,喝了有毒的药水后第二天会死亡。如何在一天之内(第二天)找出这瓶有毒的药水?思路:10只小白鼠,喝了药水之后第二天只有存在和挂掉两种情况,我们用计算机二进制里面的0和1来进行模拟,1代表喝、0代表不喝。【 二进制映射喝法:0000000001对应十进制编号第1瓶药水 】_有1000瓶水,其中一瓶是毒药,全都无色无味。给10只小白鼠 ,小白鼠喝到毒药3

springboot+mysql疫苗接种系统-计算机毕业设计源码32315-程序员宅基地

文章浏览阅读57次。(1)疫苗信息管理:本模块主要用于更新,修改疫苗信息。管理员在疫苗入库后,在后台更新疫苗相关信息(如疫苗种类、疫苗作用、生产公司、批号、适用人群、库存量等信息)。管理员可以在系统发布不同种类的疫苗的相关信息(预防疾病简介,疫苗作用,适宜人群,禁忌事项,库存量,是否收费等)。用户可以检索栏检索疫苗信息,根据疫苗类型浏览疫苗的信息,并选中某个疫苗查看详情。(2)疫苗预约管理:本模块主要用于提交及审核预约疫苗的申请和取消预约申请。用户在系统查看各类疫苗信息后,根据自身需求选中需要接种的疫苗以及接种时间,之后提

C语言 函数的传参——数组_c函数数组参数传递-程序员宅基地

文章浏览阅读1.6k次。2、复制传递方式 :实参为数组的指针,3、地址传递方式 :实参为数组的指针,地址传递:删除多余空格。1、全局数组传递方式。_c函数数组参数传递

Java基础——java算术运算符_关系运算符,逻辑运算符结果为-程序员宅基地

文章浏览阅读438次。Java算术运算符包括:关系(比较)运算符, 逻辑运算符1、关系运算符:6个(结果为布尔值)>判断a>b?<判断a<b?<=判断a<=b?>=判断a>=b?==判断a==b?!=判断a!=b2、逻辑运算符:3个 (逻辑运算符左右两边都为布尔值,逻辑运算结果也是布尔值)&&am..._关系运算符,逻辑运算符结果为

JVM虚拟机调优指导(四)——类加载机制与编译优化_symbol: class jvmproxyconfigurer-程序员宅基地

文章浏览阅读309次。1 类文件结构1.1 MyDemo1.2 字节码1.2.1 字节码表1.2.2 魔数1.2.3 版本号1.3 常量池1.3.1 常量池容量计算1.3.2 常量类型和结构1.3.3 第一个常量1.3.4 第二个常量1.3.5 javap编译字节码1.4 描述符1.4.1 字段描述符1.4.2 方法描述符1.5 实例:字符串拼接2 类加载机制2.1 类加载时机2.2 类加载过程2.2.1 加载2.2.2 验证2.2.3 准备2.2.4 解析2.2.5 初始化2.3_symbol: class jvmproxyconfigurer

推荐文章

热门文章

相关标签