• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> WEB开发 >> ASP开发 >> ASP基础 >> 详细内容
 

推荐文章

  • ASP的100个必须掌握的基础
 
 

热点文章

  • ASP初级三——ASP实例讲解
  • ASP的100个必须掌握的基础
  • ASP入门及提高
  • ASP中级三--Ajax入门讲座记录
  • ASP初级一——入门及总结
  • asp学习入门经验谈
  • ASP中级一——正则表达式讲座记录
  • ASP中级二--ORM讲座记录
  • 精华asp代码收集
  • ASP个人上手指南
  • ASP编程常用的代码
  • ASP开发网页牢记注意事项
 
 

相关文章

  • 把你的域名变成openid服务器
  • 服务器可靠性报告:Windows Server变差 Linux好转
  • Sun开始关闭MySQL部分功能的源代码
  • Windows服务器下的IIS和Apache性能比较
  • 十大网站管理员的服务器工具软件
  • 关于DedeCMS官网服务器遭攻击的公告
  • 服务器价格竞争背后的真实面目
  • 个人拥有使用服务器需注意什么?其中会有那些问题需要..
  • 服务器防黑主要是日常维护的5个步骤总结
  • 解决整台服务器不被搜索收录的关键所在
  • 李开复:Google部分服务器将从美国移至中国
  • 不打开网页直接查看网站的源代码
 
 

百度搜索

 
 

基于服务器的 web代理 源代码

  • 阅览次数:
  • 文章来源: CodePub整理
  • 原文作者: lspcieee
  • 整理日期: 2008-01-06
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

以前写的一个东西。可以通过服务器访问服务器能访问的网站页面,比如服务器内部网络的站点,等等。
访问方法:文件名后加  ?url=要访问的地址
例如:PageWebProxy.asp?url=http://192.168.1.1/index.asp(当然,前边的域名和相关路径也不可少)

源代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>web代理</title>
</head>

<body>
<%
        PageWebProxy()
        Sub PageWebProxy()
                Dim i, re, Html
                Response.Clear()
                If sUrl <> "" Then Url = sUrl Else Url = Request.QueryString("url")
                If Url = "" Then Response.Redirect("?url=http://www.shanrui.net/")

                Set re = New RegExp
                re.IgnoreCase = True
                re.Global = True

                sUrlB = Url
                Html = getHTTPPage(Url)
                If sUrl <> "" Then Echo Html:Response.End()
                Url = Left(Url, InStrRev(Url, "/"))

                i = InStr(sUrlB, "?")
                If i > 0 Then
                        sUrlB = Left(sUrlB, i - 1)
                End If

                re.Pattern = "(href|action)=(\'|"")?(\?)"
                Html = re.Replace(Html,"$1=$2" & sUrlB & "?")

                re.Pattern = "(src|action|href)=(\'|"")?((http|https|javascript):[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+([^<>""])+)(\'|"")?"
                Html = re.Replace(Html,"$1x=$2$3$2")

                re.Pattern = "(window\.open|url)\((\'|"")?((http|https):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]:+!]+([^\'<>""])+)(\'|"")?\)"
                Html = re.Replace(Html,"$1x($2$3$2)")

                re.Pattern = "(src|action|href|background)=(\'|"")?([^\/""\'][A-Za-z0-9\./=\?%\-&_~`@[\]:+!]+([^\'<>""])+)(\'|"")?"
                Html = re.Replace(Html,"$1=$2" & Url & "$3$2")
                re.Pattern = "(src|action|href|background)=(\'|"")?\/([^""\'][A-Za-z0-9\./=\?%\-&_~`@[\]:+!]+([^\'<>""])+)(\'|"")?"
                Html = re.Replace(Html,"$1=$2http://" & Split(Url, "/")(2) & "/$3$2")
                re.Pattern = "(src|action|href)=(\'|"")?\/(\'|"")?"
                Html = re.Replace(Html,"$1=$2http://" & Split(Url, "/")(2) & "/$2")

                re.Pattern = "(window\.open|url)\((\'|"")?([^\/""\'http:][A-Za-z0-9\./=\?%\-&_~`@[\]+!]+([^\'<>""])+)(\'|"")?\)"
                Html = re.Replace(Html,"$1($2" & Url & "$3$2)")
                re.Pattern = "(window\.open|url)\((\'|"")?\/([^""\'http:][A-Za-z0-9\./=\?%\-&_~`@[\]+!]+([^\'<>""])+)(\'|"")?\)"
                Html = re.Replace(Html,"$1($2http://" & Split(Url, "/")(2) & "/$3$2)")

                Html = Replace(Html, "&", "%26")
                Html = Replace(Html, "%26nbsp;", " ")
                Html = Replace(Html, "%26lt;", "&lt;")
                Html = Replace(Html, "%26gt;", "&gt;")
                Html = Replace(Html, "%26quot;", """)
                Html = Replace(Html, "%26copy;", "©")
                Html = Replace(Html, "%26reg;", "®")
                Html = Replace(Html, "%26raquo;", "»")
                Html = Replace(Html, "%26%26", "&&")
                Html = Replace(Html, "%26#", "&#")

                re.Pattern = "(src|action|href)x=(\'|"")?((http|https|javascript):[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+([^<>""])+)(\'|"")?"
                Html = re.Replace(Html, "$1=$2$3$2")

                re.Pattern = "((http|https):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+([^<>""])+)"
                Html = re.Replace(Html, "?url=$1")

                re.Pattern = "\?url=" & Url & "(#|javascript:)"
                Html = re.Replace(Html, "$1")

                re.Pattern = "multipart\/form-data"
                Html = re.Replace(Html, "")

                re.Pattern = ">\?url=((http|https|javascript):[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+([^<>""])+)<"
                Html = re.Replace(Html, ">$1<")

                Echo Html
        End Sub

        Function GetHTTPPage(url)
                Dim Http, x, theStr, fileExt
                Set Http = Server.CreateObject("MSXML2.XMLHTTP")

                If Request.Form.Count > 0 Then
                        For Each x In Request.Form
                                theStr = theStr & UrlEncode(x) & "=" & UrlEncode(Request.Form(x)) & "&"
                        Next
                        Http.Open "POST", url, False
                        Http.SetRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
                        Http.Send(theStr)
                 Else
                        On Error Resume Next
                        Http.Open "GET", url, False
                        Http.Send()
                End If

                If Http.ReadyState <> 4 Then Exit Function

                fileExt = LCase(Mid(url, InStrRev(url, ".") + 1))
                If InStr("$jpg$gif$bmp$png$js$", "$" & fileExt & "$") > 0 Then
                        Response.Clear
                        Response.BinaryWrite Http.ResponseBody
                        Response.End()
                 Else
                        If InStr("$rar$mdb$zip$exe$com$ico$", "$" & fileExt & "$") > 0 Then
                                Response.AddHeader "Content-Disposition", "Attachment; Filename=" & Mid(sUrlB, InStrRev(sUrlB, "/") + 1)
                                Response.BinaryWrite Http.ResponseBody
                                Response.Flush
                         Else
                                getHTTPPage = bytesToBSTR(Http.ResponseBody, "GB2312")
                        End If
                End If

                Set Http = Nothing
        End Function

        Function bytesToBSTR(body,Cset)
                Dim objstream
                Set objstream = Server.CreateObject("adodb.stream")
                objstream.Type = 1
                objstream.Mode =3
                objstream.Open
                objstream.Write body
                objstream.Position = 0
                objstream.Type = 2
                objstream.Charset = Cset
                bytesToBSTR = objstream.ReadText
                objstream.Close
                Set objstream = nothing
        End Function
       
        Sub Echo(sStr)
                Response.Write sStr
        End Sub
%>
</body>
</html>

上一篇:比AcdSee功能还强大的图片处理、编辑软件,推荐下载!
下一篇:ASP上传漏洞防范
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号