`
twtmnm1314
  • 浏览: 68517 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

ASP网页防SQL注入的代码

阅读更多


近日笔者的小站遭受到SQL入侵,于是上网搜索了一些相关防SQL注入的方法。

版本颇多,有人觉得这段好用,有人以为那段才行,因此综合整理了一下,包含以下几种:

 

以下为引用的内容:
<% 
Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx 
'---定义部份 头------ 
Fy_Cl = 1 '处理方式:1=提示信息,2=转向页面,3=先提示再转向 
Fy_Zx = "index.Asp" '出错时转向的页面 
'---定义部份 尾------ 

On Error Resume Next 
Fy_Url=Request.ServerVariables("QUERY_STRING") 
Fy_a=split(Fy_Url,"&") 
redim Fy_Cs(ubound(Fy_a)) 
On Error Resume Next 
for Fy_x=0 to ubound(Fy_a) 
Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1) 
Next 
For Fy_x=0 to ubound(Fy_Cs) 
If Fy_Cs(Fy_x)<>"" Then 
If Instr(LCase(Request(Fy_Cs(Fy_x))),"'")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"select")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"update")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"chr")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"delete%20from")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),";")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"insert")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"mid")<>0 Or Instr(LCase(Request(Fy_Cs(Fy_x))),"master.")<>0 Then 
Select Case Fy_Cl 
Case "1" 
Response.Write "<Script Language=JavaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&" 的值中包含非法字符串!\n\n 请不要在参数中出现:and,select,update,insert,delete,chr 等非法字符!\n\n我已经设置了不能SQL注入,请不要对我进行非法手段!');window.close();</Script>" 
Case "2" 
Response.Write "<Script Language=JavaScript>location.href='"&Fy_Zx&"'</Script>" 
Case "3" 
Response.Write "<Script Language=JavaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&"的值中包含非法字符串!\n\n 请不要在参数中出现:,and,select,update,insert,delete,chr 等非法字符!\n\n设计了门,非法侵入请离开,谢谢!');location.href='"&Fy_Zx&"';</Script>" 
End Select 
Response.End 
End If 
End If 
Next 
%>

 

以上代码为较多网友所用,从使用的感言来看,效果显著。

 

以下为引用的内容:
Dim Query_Badword,Form_Badword,Err_Message,Err_Web,form_name 

'------定义部份 头---------------------------------------------------------------------- 

Err_Message = 1 '处理方式:1=提示信息,2=转向页面,3=先提示再转向 
Err_Web = "Err.Asp" '出错时转向的页面 
Query_Badword="'‖and‖select‖update‖chr‖delete‖%20from‖;‖insert‖mid‖master.‖set‖chr(37)‖=" 
'在这部份定义get非法参数,使用"‖"号间隔 
Form_Badword="'‖%‖&‖*‖#‖@‖=‖select‖and‖set‖delete" '在这部份定义post非法参数,使用"‖"号间隔 

'------定义部份 尾----------------------------------------------------------------------- 

On Error Resume Next 
'----- 对 get query 值 的过滤. 
if request.QueryString<>"" then 
Chk_badword=split(Query_Badword,"‖") 
FOR EACH Query_form_name IN Request.QueryString 
for i=0 to ubound(Chk_badword) 
If Instr(LCase(request.QueryString(Query_form_name)),Chk_badword(i))<>0 Then 
Select Case Err_Message 
Case "1" 
Response.Write "<Script Language=JavaScript>alert('传参错误!参数 "&form_name&" 的值中包含非法字符串!\n\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!');window.close();</Script>" 
Case "2" 
Response.Write "<Script Language=JavaScript>location.href='"&Err_Web&"'</Script>" 
Case "3" 
Response.Write "<Script Language=JavaScript>alert('传参错误!参数 "&form_name&"的值中包含非法字符串!\n\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!');location.href='"&Err_Web&"';</Script>" 
End Select 
Response.End 
End If 
NEXT 
NEXT 
End if 

'-----对 post 表 单值的过滤. 
if request.form<>"" then 
Chk_badword=split(Form_Badword,"‖") 
FOR EACH form_name IN Request.Form 
for i=0 to ubound(Chk_badword) 
If Instr(LCase(request.form(form_name)),Chk_badword(i))<>0 Then 
Select Case Err_Message 
Case "1" 
Response.Write "<Script Language=JavaScript>alert('出错了!表单 "&form_name&" 的值中包含非法字符串!\n\n请不要在表单中出现: % & * # ( ) 等非法字符!');window.close();</Script>" 
Case "2" 
Response.Write "<Script Language=JavaScript>location.href='"&Err_Web&"'</Script>" 
Case "3" 
Response.Write "<Script Language=JavaScript>alert('出错了!参数 "&form_name&"的值中包含非法字符串!\n\n请不要在表单中出现: % & * # ( ) 等非法字符!');location.href='"&Err_Web&"';</Script>" 
End Select 
Response.End 
End If 
NEXT 
NEXT 
end if

 

以上是另一种版本。

 

以下为引用的内容:
<%
Dim GetFlag Rem(提交方式)
Dim ErrorSql Rem(非法字符) 
Dim RequestKey Rem(提交数据)
Dim ForI Rem(循环标记)
ErrorSql = "'~;~and~(~)~exec~update~count~*~%~chr~mid~master~truncate~char~declare" Rem(每个敏感字符或者词语请使用半角 "~" 格开)
ErrorSql = split(ErrorSql,"~")
If Request.ServerVariables("REQUEST_METHOD")="GET" Then
GetFlag=True
Else
GetFlag=False
End If
If GetFlag Then
For Each RequestKey In Request.QueryString
For ForI=0 To Ubound(ErrorSql)
If Instr(LCase(Request.QueryString(RequestKey)),ErrorSql(ForI))<>0 Then
response.write "<script>alert(""警告:\n请不要做任何尝试"");location.href=""index.asp"";</script>"
Response.End
End If
Next
Next 
Else
For Each RequestKey In Request.Form
For ForI=0 To Ubound(ErrorSql)
If Instr(LCase(Request.Form(RequestKey)),ErrorSql(ForI))<>0 Then
response.write "<script>alert(""警告:\n请不要做任何尝试"");location.href=""index.asp"";</script>"
Response.End
End If
Next
Next
End If
%>

 

将上述代码放入conn文件中即可,功能较全面……

若您有相关经历或好的防注方法,欢迎留言交流^_^

另外,亦可参考网络上较为成熟的ASP的cms里所用的防注入程序,不管如何,只想向那些代码入侵的无聊者说:善待他人就是成全自己。(wolf4ever)

分享到:
评论

相关推荐

    最新ASP通用防SQL注入代码

    从标签"防注入"、"最新ASP SQL注入代码"、"最新ASP通用防SQL注入代码"我们可以看出,这个压缩包文件的核心内容是关于防止ASP应用程序遭受SQL注入攻击的代码示例,它适用于各种ASP应用场景。 在压缩包内的文件"通用...

    ASP防SQL注入代码

    为了应对这种威胁,开发人员会采取各种措施来防止SQL注入攻击,本文将详细分析一段用于ASP(Active Server Pages)环境下的防SQL注入代码。 #### 二、代码解读 ##### 1. 初始化变量与设置 ```vbscript '''''''''...

    C#防SQL注入代码的三种方法

    对于网站的安全性,是每个网站开发者和运营者最关心的问题。网站一旦出现漏洞,那势必将造成很大的损失。为了提高网站的安全性,首先网站要防注入,最重要的是服务器的安全... C#防SQL注入方法一  在Web.config文件中

    asp 防sql注入 参考代码

    asp 防sql注入的参考代码 这是我用的网站上的代码 此文件作为包含文件 被包含在每个页面 作用:防止sql注入

    ASP源码—360通用ASP防护代码(防sql注入).zip

    综上所述,理解和应用360通用ASP防护代码对于任何ASP开发者来说都是至关重要的,它不仅可以防止SQL注入,还能帮助建立安全意识,提升整体的编程实践。在部署和维护ASP应用程序时,务必重视代码的安全性,确保用户...

    ASP防止SQL注入代码

    ASP防止SQL注入代码 只要我们在文件中过滤所有post或者get请求中的参数信息中非法字符即可,所以我们实现http 请求信息过滤就可以判断是是否受到SQL注入攻击。

    【ASP.NET编程知识】ASP.NET防止SQL注入的方法示例.docx

    ASP.NET 防止 SQL 注入攻击的方法有很多,这些方法包括参数法防注入、传统的笨一点的办法、HttpModule 实现防sql注入、SqlFilter 防止 SQL 注入、validation 防止 SQL 注入等。只有通过使用这些方法,才能有效地防止...

    【ASP.NET编程知识】ASP.NET过滤类SqlFilter,防止SQL注入 .docx

    SQL注入允许攻击者通过输入恶意构造的SQL代码片段,使得应用程序执行非预期的数据库命令,从而获取敏感数据,破坏数据完整性,甚至控制后台数据库服务器。为此,开发人员需采取一系列措施来防止此类攻击,其中一种...

    SQL 防注入代码全集

    本资源"SQL 防注入代码全集"提供了多种编程语言(如ASP和C#)的防御策略,帮助开发者保护其应用程序免受此类攻击。 一、SQL注入的基本原理 SQL注入通常发生在应用程序没有充分验证用户输入的情况下。攻击者可以通过...

    sql注入网站源码

    2. **防止SQL注入**:最有效的防御方法是使用参数化查询或预编译的SQL语句。在ASP中,可以使用ADO(ActiveX Data Objects)的Command对象和参数,这样用户输入的数据不会影响SQL结构。此外,应避免使用动态SQL,尽...

    Asp.Net通用Sql防注入源码

    "Asp.Net通用Sql防注入源码"是针对这个问题提供的一种解决方案,旨在帮助Asp.Net程序员更好地保护他们的应用程序免受SQL注入攻击。 SQL注入攻击通常发生在应用程序没有正确验证或清理用户输入时。例如,当用户在...

    ASP.NET防SQL注入DEMO

    在本文中,我们将深入探讨如何在ASP.NET中防止SQL注入攻击,这是一个重要的安全问题,对任何处理数据库交互的应用来说都是至关重要的。 SQL注入是黑客利用不安全的代码向数据库发送恶意SQL语句,从而获取、修改、...

    asp通用防SQL注入文件

    标题中的“asp通用防SQL注入文件”指的是一个专门用于防止ASP应用程序遭受SQL注入攻击的工具或代码片段。这个工具通常包含了一系列的函数或方法,用于清理和验证用户输入,确保它们不会导致不安全的SQL命令被执行。 ...

    ASP.NET防SQL注入脚本程序

    这个"ASP.NET防SQL注入脚本程序"显然是为了帮助开发者防止这种攻击而设计的。 SQL注入是黑客利用输入字段向应用程序的SQL查询中插入恶意代码,从而控制或操纵数据库的一种手段。例如,如果一个登录页面没有正确验证...

    C#防SQL注入代码

    Global.asax文件是ASP.NET应用的全局应用程序文件,其中可以定义一些全局事件处理程序,如Application_Start和Application_BeginRequest,用于在应用程序启动或每个请求开始时执行代码,实现全局级别的SQL注入防护。...

    ASP.NET源码——通用防SQL注入漏洞程序(Global.asax方式).zip

    这个压缩包提供的源码是针对ASP.NET应用的通用防SQL注入漏洞程序,通过Global.asax文件来实现。 SQL注入是一种常见的网络安全攻击手段,攻击者通过输入恶意的SQL代码,试图获取、修改或删除数据库中的敏感信息。在...

    asp 防止SQL注入代码

    把下面代码复制到每个文件头部就可以防止SQL注入了,写程序安全最重要 :) &lt;&#37; Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx ‘—定义部份 头—— Fy_Cl = 1 ‘处理方式:1=提示信息,2=转向页面,3=...

    ASP.NET(c#)防SQL注入脚本程序 v2.0 .rar

    ASP.NET(C#)防SQL注入脚本程序v2.0是一个重要的安全工具,用于保护Web应用程序免受SQL注入攻击。SQL注入是一种常见的网络安全威胁,攻击者通过输入恶意的SQL代码来操纵数据库,可能导致数据泄露、系统瘫痪甚至完全...

    简单的asp.net登陆有一定的sql防注入功能

    标题提到的"简单的asp.net登陆有一定的sql防注入功能",意味着这个示例将展示一种基础的方法来防止SQL注入攻击。在ASP.NET中,通常我们会使用参数化查询或存储过程来避免这种情况,但在这个例子中,它可能通过一个...

Global site tag (gtag.js) - Google Analytics