一个2000年的难题
作者:Jian Shuo Wang 发表于:2007-03-09 23:26 · 写作这件事儿2000年的时候,我刚刚注册了wangjianshuo.com。感谢王超群同学的帮助,给我提供了一个免费的服务器,不过这个服务器上面只能存放纯静态HTML的文件,没有任何的PHP,CGI这些东西的支持,不过我已经知足了,用FrontPage发布上去就好了(我曾经负责过FrontPage这个产品的支持)。
当时我不太想让微软里面的人看到我们网站,于是我居然很变态的想出来一种办法,让凡是在微软里面的人都看不到网站的内容,而在微软以外的人都可以看得到。也就是在微软里面访问http://wangjianshuo.com看到的是空白页,在外面就是正常的。当时想了好久才想到用一个非常简单的办法做到。
今天下午开会的时候,提到什么来着,就想起这件事情了。大家能不能也想想这个问题。我相信我明天帖答案之前一定有人能想出来办法,或许是比我那时候想出来的更简单的办法。
呵呵。动脑筋真好。
大前天在飞机上读了一本书,是斯特凡-克莱因写的一本书,叫做《幸福之源》,里面就提到,完全没有事情干,人是不会幸福的。人一定要干点什么,无论是除草,还是做家务,或许读书。。。总之,人不能在不干什么的时候感觉到幸福。或许这就是人为什么总想自己给自己出问题,然后解决问题,这事情和小猫喜欢玩线团或者捉自己的尾巴没什么不同。
42 Comments
用ISA防火墙阻止同事访问?
改微软同事的DNS?
在hosts加 假DNS?
用JavaScript判断用户的浏览器是否为英文浏览不让英文用户看你的网站?
用微软员工的浏览器不支持的网页编码?
或用FrontPage的某个特性?
或HTML有个特性可以利用?
或微软有个什么特性可以利用?
当时除了HTML以外,什么也木有。
zola的改DNS倒是一条路,但是为了这个去改 IT 控制的DNS服务器,倒不见得值得。
微软的浏览器和操作系统都是一样的。
呵呵。
我也同意runliu的意见,可以在内部DNS上建一个wangjianshuo.com域,然后指向一个空白的页就OK了!
所以应该是在客户端改的,但只是HTML,没有server程序,只有vbscript或javascript
简单一些可能是用vbscript或javascript判断本机IP(局域网的IP有一定规则),然后更改输出。
很无聊地试一试,现在会有Activex警告,但2000年security没那么好,IE5? 应该可以这么做。
思路上看,如果不改server,不用server code, 我会用script来得到本机信息然后不同输出, hehe, 依然是MS的思考方式
还有就是你有管理员权限,改变内部DNS,指向到空白页。
其实是土的不能再土的办法。赫赫。看起来大家都是喜欢思考的好同学。
------------------------------------------------------------------------------------------------
var WshShell =new ActiveXObject("WScript.Shell");
/************先获取客户端的计算机名或者工作组名或者相关信息************************/
WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%"); //这一句是用来得到用户的计算机名称
WshShell.ExpandEnvironmentStrings("%USERNAME%"); //这一句是用来得到用户名
WshShell.ExpandEnvironmentStrings("%WORKGROUPNAME%"); //这一句是用来得到工作组名
/**********************
*使用正则表达式判断机器名是否包含微软内部网络特定的用户名称*
**********************/
-------------------------------------------------------------------------------------------------
这段javascript能够在纯html空间上执行,但是如果服务器是win2003则不能执行,我想2000年的时候你的空间服务器上肯定不是win2003吧。
当然具体WshShell.ExpandEnvironmentStrings的参数名,因为我手头上没有help文档,估计会有点出入。但是使用WshShell.ExpandEnvironmentStrings是肯定能获得浏览者的客户端的具体信息,ip好像也能获取,但是建硕说得对,如果通过判断ip来屏蔽的话是十分复杂。如果用上面代码的话,代码量不会超过20行。
不过我感觉建硕应该不是使用这种这么正规的方式,看来我还是要再想想有没有其他偏门方式。
例子:
.html">
然后用所有的微软IP地址命名做一个个空白页面。
然后把默认的404页面改成你的主页面。
var WshNetwork = new ActiveXObject("WScript.Network");
var oDrives = WshNetwork.EnumNetworkDrives();
var oPrinters = WshNetwork.EnumPrinterConnections();
var Domain = WshNetwork.UserDomain; //获取浏览者的域名
var mydomainrule = "ts007"; //限制访问的域名规则,这里是我公司的域名规则。
if(Domain.match(mydomainrule) !=null)//具体的正则表单式操作根据具体情况决定
{
window.location.href = "http://blog.csdn.net/adalovelacer";//如果浏览者符合限制访问规则,则会跳转到http://blog.csdn.net/adalovelacer
}
根据具体情况只需要10到20行左右的代码量。不过这种代码是使用windows 2000 脚本,出于安全原因,不能在windows 2003的服务器上运行,所以在2000年的时候该代码还是能运行的。
any question?好,我现在去想想偏门方式 :)
var WshNetwork = new ActiveXObject("WScript.Network");
var oDrives = WshNetwork.EnumNetworkDrives();
var oPrinters = WshNetwork.EnumPrinterConnections();
var Domain = WshNetwork.UserDomain; //获取浏览者的域名
var mydomainrule = "ts007"; //限制访问的域名规则,这里是我公司的域名规则。
if(Domain.match(mydomainrule) !=null)//具体的正则表单式操作根据具体情况决定
{
window.location.href = "空白页连接";//如果浏览者符合限制访问规则,则会跳转到空白页连接
}
根据具体情况只需要10到20行左右的代码量。不过这种代码是使用windows 2000 脚本,出于安全原因,不能在windows 2003的服务器上运行,所以在2000年的时候该代码还是能运行的。
any question?好,我现在去想想偏门方式 :)
或者在页面插入一个只有微软公司内网才能调用的js之类的,会将页面跳转到空白页,外网根本调用不到所以显示就正常。
关于改公司的DNS,加入黑名单什么的,就不用想了,毕竟微软的IT严格程度,不是随随便便就能改动的,况且,就这么个小事情也不值得呀。
其实微软里面没有什么与这个问题有关的特殊的环境。或者换句话说,如果你想让你的blog在公司里面访问是空白页,在公司外面可以访问,也是一样的。
大家已经离我当时用的方法很接近了,不过老实说,应该有很多的方法,我就只是想到了一个比较土的。没想到各位还真是较真儿的人。要么再想想?我晚些再公布我的做法。
none.css内容为
body {
display: none;
}
<style type="text/css" href="http://d-sha-xxx.corp.microsoft.com/none.css"></style>
看了看留言, 和Erning的办法一样的,不过CSS更隐蔽,好办法。
我觉得Erning的方法的确不错,如果在通过把"建设中"这段字赋予none.css的样式(这样内部网浏览者只能看到“建设中”),然后加段屏蔽右键的javascript(这样别人就不能通过鼠标右键看到源代码)就更好了。
我觉得Erning的方法的确不错,如果在通过把"建设中"这段字赋予none.css的样式(这样内部网浏览者只能看到“建设中”),然后加段屏蔽右键的javascript(这样别人就不能通过鼠标右键看到源代码)就更好了。
--------------------
呵呵,想都不要想。
怎么还不公布呢,很好奇。
<img src="http://msweb/img/logo.jpg" onload="this.location='/page4everyone.htm'" width=1 height=1<
http://msweb/img/logo.jpg 是内部网络的一幅图片,
/page4everyone.htm是给其他人看到的主页。
而这个页面的正文是很正常的一些文字。原理就是,只有微软内部的人才能访问到那个图片,而不在微软里的人,会在一段时间的停顿以后,自动跳转。
不过就像有人说的,如果看源代码没有什么藏得住的,通过源代码,什么都可以看得到,比如/page4everyone.htm这样的文件名。不过,谁让我只有HTML的存放地方,还有什么可以抱怨的呢?
不过这又引出来那个时候的另外的一个难题,比这个还简单点,就是:
我们有一份高中同学的通讯录(包括所有的人的联系方式)。我把这份通讯录放在网上,要求:所有我们的高中同学可以轻松的拿到,而其他的人就很难看到。
因为是基于HTML的,也就是说,只要有URL,没有什么能够藏住的,但是有什么办法可以保护一个很难记得的URL(比如/45831-8fdaurewqp.htm)不被别人发现呢?总之不能写进HTML的源代码。
大家想想这个问题?(回头想一想,那个时候真是空呀,总想这些事情)
来实现,
这样就算把页面另存为的话也不会把js文件保存到本地。不过如果不在iis的isapi里面设置js文件的处理程序,浏览者一样可以通过在浏览器里面输入js的url来打开这个js文件,除非这个js文件也是放置在内部网,外部网无法访问。这也是关键的一点:高中同学访问同学录是通过互联网访问的吗?
script src="" language="JavaScript" type="text/javascript"></script