原创 网站可以如此复制?收藏

新一篇: 关于聚会 | 旧一篇: videobox,一个错误的名字

论坛中碰到如此问题:
我们做了一个网站,域名是www.3322173.com
没想到今天忽然发现了
www.qiepeng.cn的内容和我们的是一模一样...内容也是同步更新,只是把内容中3322173.com替换成qiepeng.cn
我关闭我自己的IIS后,两个域名都不能访问了.
我郁闷啊,这是什么样的技术哦.怎么解决呢?

这个事情肇事人很无耻,也很容易对付,只要把对方服务器ip屏蔽掉就ok了,如何实现的呢,下面就以上面的例子讲述。

主要思路就是url重定向。

打开iis,新建一个网站,名称为test,配置同一般的.net2.0配置。

建立成功后,有些地方需要修改。

为404错误重定向,这个是最关键的。选择属性-自定义错误-列表中双击404,消息类型选url,url的地方输入 /Handler.ashx

让iis不处理aspx等文件。选择属性-主目录-配置-应用程序扩展中把aspx删除。

这样iis就配置完成了,接着写一小段代码来处理404错误重定向的页面就可以了。

这里用httphandler来处理,也就是上面的Handler.ashx文件,这样不容易和其他文件冲突,用dll和webconfig配合其实更好。

打开vss2005,建立新网站,就是刚刚的iis路径。删掉那个default.aspx。

添加新项-一般处理程序-生成一个Handler.ashx。

添加如下代码:

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;

public class Handler : IHttpHandler {
    
    
public void ProcessRequest (HttpContext context) {
        
        
//标记一下
        context.Response.ContentType = "text/plain";
        
        
//取得404错误重定向的参数和主机
        string strQuery = context.Request.Url.Query.Replace("?404;","").ToLower();
        
string localHost = context.Request.Url.Authority.ToLower();

        
//计算目标地址
        string targetHost = "www.3322173.com";
        
string queryUrl = strQuery.Replace(localHost, targetHost);
        
        

        
try
        
{
            
//获取目标页面内容
            System.Net.WebClient wb = new System.Net.WebClient();
            
byte[] b = wb.DownloadData(queryUrl);

            
string type = wb.ResponseHeaders["Content-Type"];

            
//判断是否文档页面,这里可以稍微复杂些考虑到js和css等其他文件,多判断几个条件就可以了
            if (!string.IsNullOrEmpty(type) && type.ToLower().StartsWith("text/html"))
            
{
                
//替换文档内容中的主机地址
                string str = System.Text.Encoding.Default.GetString(b);
                str 
= str.Replace(targetHost, localHost);
                context.Response.Write(str);
            }

            
else
            
{
                
//如果是图片等直接输出
                context.Response.BinaryWrite(b);
            }

            context.Response.End();
        }

        
catch
        
{ }
    }

 
    
public bool IsReusable {
        
get {
            
return false;
        }

    }


}

 

效果如下

直接运行就可以看到效果了。

申明:本文只针对技术方面讨论,请不要用于不正当途径,否则后果自负,本文作者jinjazz不承担任何责任。
 

发表于 @ 2008年02月27日 17:13:00|评论(loading...)|编辑

新一篇: 关于聚会 | 旧一篇: videobox,一个错误的名字

评论

#lgyhack 发表于2008-02-27 20:11:23  IP: 222.137.158.*
这样的做法确实很无耻 我刚才进了2个网站都看了 确实如楼主所说
#Guile 发表于2008-02-27 22:01:53  IP: 202.106.180.*
针对他们的IP做一个HTTP炸弹,多好玩
#Iamfish 发表于2008-02-27 23:55:08  IP: 116.26.146.*
用来挂马,如何?哈哈。
#poplau 发表于2008-02-28 01:48:05  IP: 125.62.48.*
我在iis上进行了IP屏蔽,可是仍然可以显示.
然后我在该页的Page_Load程序中写入
string url=Request.Url.ToString();
if(url.IndexOf("3322173")==-1){
return;//返回不再执行下面程序
}
也不行.
因为到这里,我的程序接收已经是3322173的域名了
我觉得他是在发送给用户的时候将3322173.com替换成qiepeng.cn.
但我还不知道如何解决...
谢谢你.你的程序中是将所有的3322173.com都替换成localhost的吗?谢谢你的热心
#poplau 发表于2008-02-28 01:49:28  IP: 125.62.48.*
你有QQ吗?我的QQ是70023362
#poplau 发表于2008-02-28 01:54:15  IP: 125.62.48.*
好了,我在服务器上设置了IP拒绝,解决了,谢谢你.原来是刚才把IP写错了...汗
#bingdian37 发表于2008-02-28 08:24:45  IP: 59.81.133.*
啥叫HTTP炸弹?
#yongfa365 发表于2008-04-09 13:43:51  IP: 123.113.204.*
你是不是自己的服务器,然后上面只放了一个你的网站,主机头里80端口为空呀

你加上个记录就可以了:
主机头,80


如果你不加的话,不管是谁只要把域名解析到你这台服务器,打开的都是你的网站,就如你所说,只是域名不一样
发表评论  


登录
Csdn Blog version 3.1a
Copyright © 贾涛