隐藏Content-Location标头带的内部IP地址的执行语句以及其可能会带来的问题

用IIS发布的系统,利用各种检测工具,可以获取到页面的请求头的信息,里面会带有服务器IP等保密信息。

为了避免服务器IP地址等这种信息别的工具检测到,导致安全隐患。可以在CMD中执行以下语句:

cscript c:\\inetpub\adminscripts\adsutil.vbs set w3svc/网站标识/UseHostName True


改语句的意思是使用adsutil.vbs 这个程序,将你相应站点下的UseHostName 标识设置为 True,这样在服务器返回的请求头中就会

屏蔽掉IP地址。回退的方式就是:

cscript c:\\inetpub\adminscripts\adsutil.vbs set w3svc/网站标识/UseHostName False

 

在实际操作中,这个操作会带来一定的问题,甚至影响到你系统的使用。

如果你的系统里使用Response.redirect("A.aspx") 做的页面跳转,

则当你执行了以上的命令后,使用Response.redirect("A.aspx") 做跳转时,系统会因为找不到服务器的IP地址而只能用服务器的主机名去构造全面的那段地址。

比如,你从页面B跳转到页面A,页面B的地址是www.yuming.com/b.aspx   yuming 是跟IP做了DNS映射的,正常情况下服务器获取了自己的IP后,能映射成yuming,

但是如果使用了以上:cscript。。。。 语句后, 当b.aspx使用了Response.redirect("A.aspx") 打算跳转到a.aspx时,服务器获取不到IP了,无奈之下,服务器会选用机器名作为地址,构造

一个URL 如:jiqiming/a.aspx  这样就会导致页面找不到的问题。

以上的具体原理本人还不是很清楚,只是在实际应用中发现了其存在的问题。并且根据自己的分析以便记忆。也不清楚分析得是否正确,如果人深入了解过,望留言指教

posted @ 2012-08-21 14:53  灿烂的鸟  阅读(1055)  评论(0编辑  收藏  举报