令人头疼的白名单上网过滤

一直以来,公司都采用了白名单过滤的上网控制方式,而受控制的对象竟只有我一个或是少数几个员工,可是令人不解的是对於https协议的网址却一概放行,这麽看来莫非公司是为的整体的安全性著想?只有被信任的https网站以及公司指定的几个网站可以访问。那麽爲什麽美工们可以畅通无阻?如果是爲了安全性考虑,那麽这又是爲什麽呢?难道我们的分辨能力还要更差一些?

受限制的只是在http协议中白名单域名列表以外的所有网址,也就是说例如 ibm.com , sun.com, apache.org 等等的在白名单内的网址都予以放行,而对於 godaddy.com, facebook.com, twitter.com 这类白名单以外的网站只能望而却步,但是国外的网站尤其是较大型网站都有自己的https安全连接方式,因而想访问这些网站倒不是难事,例如通过 https://www.godaddy.com,  https://www.facebook.com, https://www.twitter.com 都可以轻易访问,可是国内网站99%都没有基於https的怎麽办呢(只有银行和支付宝才会有https)?

不是我想耍小聪明,可是做IT的天天挨人踢,遇到问题没人可以问,难不成遇到一个小问题就把英文官方文档翻个遍吗?上Google和百度查查解决方案是多数人都会选择的途径。可是我们公司只放行google.com啊,百度都不让用,於是我发现了Google翻译,它可以翻译网页,并且是缓存在Google自己的服务器中的,这样一来当搜到的网址而无法访问时,只要把url 往 http://translate.google.com 中一贴就OK了,然後把翻译结果切换至“原文”模式,这样可以看大多数网页了,但是这种情况的缺点就是无法进行交互操作,毕竟Google是把内容缓存到自己服务器上面,中间夹了个第三者还怎麽交互呢。例如登录、注册、发表回覆什麽的都无法做。

这麽混混沌沌地度过了一年,今天发现一个新方法,原因是打开人人连接的时候发现网页居然可以显示,因为在 http://www.connect.renren.com?xxxxx&xxxxxx最後面发现了一个callbackurl写着一个类似于http://www.ibm.com的白名单内的网址,这样网页就得以显示出来,可是单独打开 renren.com 是无法访问的,於是乎就试了试其他原本无法打开的网站  http://www.iteye.com?r=ibm.com ,   http://weibo.com?r=ibm.com,  http://www.openfav.com?r=ibm.com 通通都打开了,乐了。

可是这也仅仅是解决一下燃眉之苦,对於一些无法被Google翻译打开的网页可以采用这种方式打开了,就是在url最尾处加上一个r=ibm.com  或者 any=ibm.com  ,总之参数名可以乱写,而值只要是白名单列裱中存在的域名即可。

这种方式恐怕只有程序员才会用,某些提交登录和注册的表单指定了action="xxx.php" 只有用firebug或者其他开发人员工具人为改成 action="xxx.php?r=ibm.com" 才能正确提交,真折腾呢。

虽然无法跟正常网页打开那样,可是能够解决某些应急性问题还是觉得有比无好得多。起码我之前无法用的在线收藏夹(http://www.openfav.com)可以登录并使用了。

总结一下,由此看来这种白名单的放行拦截方式其实是在网関处做了设置,对於URL中无论是域名处还是参数的值中包含白名单中所设定的域名给予放行操作,否则就不放行。这种方式就很像我之前发现的中国墙内对黑名单的网站屏蔽的操作。只不过白名单是检测到白名单中有的域名就给予放行,相当於做了个true||false的操作,而黑名单则是检测到黑名单中有的域名就直接屏蔽,相当於做了个true&&false的操作。
之前发现的问题是这样的,因为中国封堵了facebook, twitter, youtube 等网站,对於服务器摆在中国墙内的,例如 weibo.com (服务器在中国),如果在url的参数部份添加 b=www.facebook.com 的参数,那麽将会遭遇封堵,参考url http://www.weibo.com?b=www.facebook.com 其原理与上面类似,一旦包含有黑名单上所设定的域名,必定非死不可,不仅如此,还会造成你在几分钟内无法再次连接此网站,不过几分钟就好了!就连 jpg 啊 html 啊,有的没得都不例外。再打个比方,假如访问http://weibo.com/sdfsdf.html 我们应当看见一个404错误,报告找不到此页面,加上 b=www.facebook.com 参数之後,http://weibo.com/sdfsdf.html?b=www.facebook.com 直接把你给封死。 图片亦然。所以对於图片或者页面或者文件夹的命名,千万不要在名称中包含facebook.com, twitter.com, youtube.com 这类关键字,否则,吃亏了。 不过这些注意事项仅仅是针对服务器在中国墙内的站长们,国外的话,中国就管不着了。

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料