首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 不要说我笨!我求asp防注的代码, [已结贴,结贴人:xiaozhanger]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiaozhanger
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2007-11-20 16:01:30 楼主
    我求asp防注的代码
    最好给我那种拿来就能用的,我不会asp,
    比如只要include一个文件就可以了的,
    千万是能用的,
    谢了,
    我在网上找了,
    按上面的做法,老报500错误,
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hztgcl1986
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-20 16:14:521楼 得分:10
    把下面代码单独放在一个文件里,然后包含就可以了 <%
    Dim sqlinstr,sqlinarray,sqlin
    sqlinstr="insert into|*|delete from|*|select|*|update|*|truncate|*|create|*|drop|*|and|*|declare|*|execute|*|exec"
    sqlinarray=Split(sqlinstr,"|*|")

    'Get
    If Request.QueryString <>"" Then

    For Each sqlin In Request.QueryString

    For i=0 To UBound(sqlinarray)

    If InStr(LCase(Request.QueryString(sqlin)),sqlinarray(i)) <>0 Then
    Response.Write(" <script>window.alert('"&sqlinarray(i)&"为SQL注入字符,拒绝操作!');history.back(); </script>")
    Response.End()
    End If

    Next

    Next

    End If

    'Post
    If Request.Form <>"" Then

    For Each sqlin In Request.Form

    For i=0 To UBound(sqlinarray)

    If InStr(LCase(Request.Form(sqlin)),sqlinarray(i)) <>0 Then
    Response.Write(" <script>window.alert('"&sqlinarray(i)&"为SQL注入字符,拒绝操作!');history.back(); </script>")
    Response.End()
    End If

    Next

    Next

    End If
    %>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • showbo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      3

    发表于:2007-11-20 16:18:532楼 得分:10
    VBScript code
    '--------定义部份------------------ Dim Fy_Post,Fy_Get,Fy_getIn,Fy_Inf,Fy_Xh,Fy_postIn '自定义需要过滤的字串,用 "|" 分隔 Fy_getIn = "'|#|exec|insert|select|delete|update|%|chr|char|mid|master|truncate|declare|(|)|*"'get方法需要过滤的关键字 Fy_postIn = "exec|insert|select|delete|update|truncate|declare"'post方法需要过滤的关键字 '---------------------------------- '--------POST部份------------------ If Request.Form<>"" Then Fy_Inf = split(Fy_postIn,"|") For Each Fy_Post In Request.Form For Fy_Xh=0 To Ubound(Fy_Inf) If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))<>0 Then Response.write "POST方法提交的数据中出现SQL关键字“"&Fy_Inf(Fy_Xh)&"" Response.End End If Next Next End If '---------------------------------- '--------GET部份------------------- If Request.QueryString<>"" and request.Form="" Then Fy_Inf = split(Fy_getIn,"|") For Each Fy_Get In Request.QueryString For Fy_Xh=0 To Ubound(Fy_Inf) If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then Response.write "GET方法提交的数据中出现SQL关键字“"&Fy_Inf(Fy_Xh)&"" Response.End End If Next Next End If
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiaozhanger
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-20 17:55:473楼 得分:0
    请问上面这些比如放在  sql_ject.asp里
    那在别的文件里什么地方引用呢,
    哪些文件要引用这个sql_ject.asp呢,
    我对asp网站的层次结构不了解,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • showbo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      3

    发表于:2007-11-20 17:59:024楼 得分:5
    HTML code
    <!--#include file="sql_ject.asp"-->


    注意上面的file的值,要根据你引用的文件的路径来更改

    苯一点的方法就是使用上面的代码,然后把sql_ject.asp放到每个使用这个文件的文件夹中
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiaozhanger
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-20 18:29:275楼 得分:0
    比如说下面这个文件是我要防注的,我现在要怎么做呢?

    <%
    Option Explicit
    'on error resume next
    %>
    <!--#include file="inc/db.asp"-->
    <!--#include file="inc/processpwd.asp"-->
    <%
    Dim  adBigInt
    adBigInt= 20
    Dim CmdSP
    Dim adoRS
    ………………………

    是不是象下面这样:
    <%
    Option Explicit
    'on error resume next
    %>
    <!--#include file="fangzhu.asp"-->   
    <!--#include file="inc/db.asp"-->
    <!--#include file="inc/processpwd.asp"-->
    <%
    Dim  adBigInt
    adBigInt= 20
    Dim CmdSP
    Dim adoRS
    …………………………………………

    不过这样一运行到这页,就报 http500错误,我就这么笨吗

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiaozhanger
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-20 21:44:486楼 得分:0
    再帮帮我吧,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiaozhanger
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-21 07:22:517楼 得分:0
    再帮帮我吧,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • showbo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      3

    发表于:2007-11-21 08:45:388楼 得分:10
    你制作一个简单的asp页面看能不能运行,如果不能可能是你iis安装有问题.http500错误一般是iis软件的问题

    HTML code
    <% response.write "test" %>


    把上面代码放到一个新建立的asp页面,看能不能输出test.

    查看你的ie设置,看有没有把"显示友好http错误显示"的复选框取消
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jykgps
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-21 10:40:539楼 得分:10
    去网上搜通用防注入 下载一个,把代码 copy到你的数据库连接文件里面比如 conn.asp里,
    不想去下载就在楼上找个能用的,复制到conn.asp里就可以了,
    不过你最好把post部份改一下,把几个关键字去了,比如"and"等. 通用防注入系统就是一竿子呼死一船人.假如你添加新闻内容文章里有个and 关键字,他就会拦截.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lionz1023
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-21 11:28:0910楼 得分:0
    你把上面的防注入代码放到conn.asp里不就可以了吗。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hztgcl1986
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-21 12:33:4411楼 得分:0
    非常抱歉,我们公司不允许上QQ,不能在QQ中给你回复。

    把代码单独放在一个文件里,然后包含就可以了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lionz1023
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-21 12:40:1512楼 得分:5
    <%


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

    Err_Message = 3 '处理方式:1=提示信息,2=转向页面,3=先提示再转向

    Err_Web = "http://www.XXXX.net" '出错时转向的页面

    Query_Badword="'‖and‖select‖update‖chr‖delete‖%20from‖;‖insert‖mid‖master.‖set‖chr(37)‖="

    '在这部份定义get非法参数,使用"‖"号间隔

    Form_Badword="'‖%‖*‖#" '在这部份定义post非法参数,使用"‖"号间隔

    'Form_Badword="'‖%‖&‖*‖#‖@"
    '------定义部份 尾-----------------------------------------------------------------------

    On Error Resume Next

    '----- 对 get query 值 的过滤.

    if request.QueryString <>"" then
    Chk_badword=split(Query_Badword,"‖")
    FOR EACH Query_Name IN Request.QueryString
    for i=0 to ubound(Chk_badword)
    If Instr(LCase(request.QueryString(Query_Name)),Chk_badword(i)) <>0 Then
    Select Case Err_Message
    Case "1"
    Response.Write " <Script Language=JavaScript>alert('传参错误!参数 "&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('传参错误!参数 "&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 name IN Request.Form
    for i=0 to ubound(Chk_badword)
    If Instr(LCase(request.form(name)),Chk_badword(i)) <>0 Then
    Select Case Err_Message
    Case "1"
    Response.Write " <Script Language=JavaScript>alert('出错了!表单 "&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('出错了!参数 "&name&"的值中包含非法字符串!\n\n请不要在表单中出现: % & * # ( ) 等非法字符!');location.href='"&Err_Web&"'; </Script>"
    End Select
    Response.End
    End If
    NEXT
    NEXT
    end if


    %>
    <%

    dbpath=server.mappath("mdb/etwldbs.cgi") 
    set conn=server.createobject("adodb.connection") 
    conn.open "provider=microsoft.jet.oledb.4.0;data source=" & dbpath

    %>

    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved