服务器上必须保留空主机头,如何放置恶意域名指向呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器上必须保留空主机头,如何放置恶意域名指向呢?相关的知识,希望对你有一定的参考价值。
服务器上必须保留空主机头,如何放置恶意域名指向呢?
是防止,不是放置。我的服务器是WINDOWS2003+IIS的.谢谢!
域名被恶意指向所解决办法:
主要是绑定所有站点,禁用空主机头或默认站点,只能基于域名的访问方式,不使用基于IP,下面介绍IIS与APACHE的设置方法。
1、IIS的设置方法
IIS默认中,将任何站点都绑定到固定的域名,不可以留空主机头,这样没有绑定主机头的域名恶意指到此IP,默认会提示400错误。
2、Apache 的设置方法
Apache可以通过禁用第一个虚拟站点。
打开apache的配置文件,通常是httpd.conf文件,使用基于域名的访问方式。必须有下面的指令,Apache的第一个虚拟站点即为默认站点,必须对此站点进行限制。
域名恶意指向的原理:
若某个非法域名指向到某台服务器,而该服务器上存在空主机头的站点,此时web服务器会自动将请求分配到空主机头的站点上,这样就使非法指向的恶意域名有了可访问性。
域名恶意指向之后会有什么后果:
非法网站被工信部扫描到之后,将会影响到该主机客户的域名备案等信息。
如何防止域名恶意指向:
将每个网站均绑定主机头,即可有效防止dns恶意解析。 参考技术A 1.发现将主机头设为空后,任何域名都可以解析到我的服务器上,并可以访问,这样很危险,至少在中国很危险。
2.主机上有多个站点,但“主机头设为空”只能一个站点。
解决办法:
1)你可以在httpModules中分析客户端的HTTP请求,做相应的处理
继承System.Web.IHttpModule接口,然后去实现接口定义的方法。
2)你可以为站点指定不同的IP或不同的端口号。或者使用类似问题1的解决方法去解决,写一程序,托管所有指向服务器的域名。 参考技术B 在网站默认首页写一段代码,只允许授权了的域名。 参考技术C 只有在空主机头对应的网站首页中 添加判断程序来进行判断重定向恶意域名,或者使用REWRITE 写规则来处理恶意域名,其他可能没有办法!如果对你有帮助,请采纳,谢谢追问
这个办法是缓兵之计,管局发现是跳转的,还是会封IP的。有其他更彻底的解决办法吗?
追答你没有办法阻止别人把域名解析到你的IP上,另外,如果机房有防火墙 或者白名单设备的话,可以考虑让他们在防火墙或者白名单设备上加以阻止!其他别无他法了!
追问还有人有招没?
本回答被提问者采纳 参考技术D 在iis里面设一个白名单,这个白名单列入允许的所有域名和二级域名,允许访问的IP,其它的一概不允许访问, 如果有人恶意解析到你的Ip,只要访问不到内容,你们在回复管局时注明为恶意解析即可,但如果恶意解析域名很多还是建议你换IP追问这样设置会拖慢打开速度,不是很好。
二级域名原理以及程序代码
二级域名原理以及程序代码 |
|
TYPE:经典代码片段 | TIME:2002-7-30 |
AUTHOR:扬子 | URL:N/A |
HIT:51 DAYHIT:1 WEEKHIT:1 | |
要达到二级名的效果,必须一下条件以及流程: 1、必须有一个顶级域名,而且此域名必须做好泛解析并做好指向。 2、必须有一台独立的服务器。泛解析的域名指向该服务器。 3、在服务器上的IIS建一个空的主机头名的web站点。 4、将默认的页面设置为你的二机解析程序(比如:freedns.asp) 5、二级域名系列程序(包括申请页:shenqing.htm,添加页add.asp,解析页,) 此程序的优点: a,可以限制申请域名的敏感字,比如 hacker,wwww,sex,china等 b, 可以限制申请域名的非法字,比如:!·#¥%……—*()——?‘“/等 c, 每个地址只能申请一个域名。 d,限制申请域名的长度, e, 如果用户所访问的域名没人申请则转到特定的页面,本例中http://www.asp.net f, 申请了域名:***.yourname.com 可以同时支持:http://***.yourname.com 以http://www.***.youranme.com 两个域名的访问。 一下为系列程序代码: shenqing.htm <form action=adddns.asp method=post name=Frm onSubmit="return check_input()"> <br> <font color=red>加*号为必填内容</font> <br> 您想注册的域名: http://<input name="nowurl" size=12 style=" BORDER-BOTTOM: 1px double; BORDER-LEFT: 1px double; BORDER-RIGHT: 1px double; BORDER-TOP: 1px double; COLOR: #000000; FONT-SIZE: 9pt"> .51bxg.com <br> 你实际的网站地址: <input name="tourl" size=12 style=" BORDER-BOTTOM: 1px double; BORDER-LEFT: 1px double; BORDER-RIGHT: 1px double; BORDER-TOP: 1px double; COLOR: #000000; FONT-SIZE: 9pt"> 你要求显示的title: <input name="company" size=12 style=" BORDER-BOTTOM: 1px double; BORDER-LEFT: 1px double; BORDER-RIGHT: 1px double; BORDER-TOP: 1px double; COLOR: #000000; FONT-SIZE: 9pt"> <br> <input type="submit" name="Submit" value=" 提 交 信 息 " style="border:1px double rgb(88,88,88);font:9pt"> <input type="reset" name="Reset" value=" 重 新 填 写 " style="border:1px double rgb(88,88,88);font:9pt"> </p> </form> 添加记录页面add.asp <!--#include file="char.inc"--> <!--#include file="conn.asp"--> <% uID=request.cookies("*****") %> <% dim nowurl,tourl,company,along,pbkey nowurl=trim(request.form("nowurl"))+".51bxg.com" nurl=trim(request.form("nowurl")) tourl=trim(request.form("tourl")) company=trim(request.form("company")) along=20 pbkey="www,sex,admin,w,ww,wwww,hacker,hack" set rs=server.createobject("adodb.recordset") sql="select * from dns where userid=‘"&uid&"‘" rs.open sql,conn,1,1 if not rs.EOF then response.write"很抱歉,你已经申请过二级域名,每个用户只能申请一个二级域名!<br>你申请的二级域名是http://";+rs("nowurl") response.end end if set rs=server.createobject("adodb.recordset") sql="select * from dns where nowurl=‘"&nowurl&"‘" rs.open sql,conn,1,1 if not rs.eof then response.write"很抱歉,你申请的域名http://";+nowurl+"已经被其他公司申请,请另外申请域名。" response.end end if if len(nurl)>along then response.write"很抱歉,你输入的域名太长,请重新输入" response.end end if if instr(pbkey,nurl) then response.write"很抱歉,你输入的域名因为含有敏感字而不管理员屏蔽,请重新输入。" response.end end if ‘判断字符的合法性 if instr(nurl,"~") or instr(nurl,"`") or instr(nurl,"/") or instr(nurl,"?") or instr(nurl,">") or instr(nurl,"<") or instr(nurl,";") or instr(nurl,":") or instr(nurl,"}") or instr(nurl,"{") or instr(nurl,")") or instr(nurl,"(") or instr(nurl,"*") or instr(nurl,"&") or instr(nurl,"^") or instr(nurl,"%") or instr(nurl,".") or instr(nurl,",") or instr(nurl,"‘") or instr(nurl,"~") or instr(nurl,"!") or instr(nurl,"$") then response.write"很抱歉,你输入的域名含有非法字符,请重新输入,以下字符为非法字符:<br>~ ` / ? > < ; : } { ) ( * & ^ % $ # @ ! " response.end end if set rs=server.createobject("adodb.recordset") sql="select * from ** where theid is null" rs.open sql,conn,3,3 rs.addnew rs("userid")=uID rs("nowurl")=nowurl rs("tourl")=tourl rs("company")=company rs.update response.write"祝贺,申请成功,你马上就可使用你的域名http://";+nowurl %> 域名解吸程序: freedns.asp <!--#include file="conn.asp"--> <% dim geturl geturl=replace(Request.ServerVariables("HTTP_HOST"),"www.","") set rs=server.createobject("adodb.recordset") sql="select * from tb where nowurl=‘"&geturl&"‘" rs.open sql,conn,1,1 if rs.eof then response.redirect"http://www.asp.net"; else dim tourl,company tourl=rs("tourl") company=rs("company") %> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=gb2312"> <META CONTENT="text/html; CHARSET=UTF-8" HTTP-EQUIV="Content-Type"> <TITLE><% =company %></TITLE> </HEAD> <frameset frameborder="0" framespacing="0" scrolling="no" border="0" marginheight="0" marginwidth="0" rows="0,*"> <frame scrolling="NO" noresize="0" marginwidth="0" marginheight="0" framespacing="0" frameborder="0" target="main" name="main" SRC="about:blank"> <frame scrolling="yes" noresize="0" marginwidth="0" marginheight="0" framespacing="0" frameborder="0" target="main" name="main" SRC="<% =tourl %>"> <noframes> <body> <p>This page uses frames, but your browser doesn‘t support them.</p></body> </noframes> </frameset> </HTML> <% end if %> |
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net
以上是关于服务器上必须保留空主机头,如何放置恶意域名指向呢?的主要内容,如果未能解决你的问题,请参考以下文章