用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 这样就会导致页面找不到的问题。
以上的具体原理本人还不是很清楚,只是在实际应用中发现了其存在的问题。并且根据自己的分析以便记忆。也不清楚分析得是否正确,如果人深入了解过,望留言指教