2010年5月25日星期二

中国互联网地图发展前景分析

  随着互联网技术的飞速发展,互联网地图的应用已经越来越广泛,众多互联网巨头都已经在涉足这一行业,互联网地图服务提供的信息和搜索服务给广大人民的工作和生活带来了极大的便利,并创造了越来越大的市场。然而,这些年来,中国互联网地图行业的发展却遇到了很多问题,月光博客将从各个方面对中国互联网地图的发展前景进行分析。

  谷歌地图和谷歌地球的历史

  谷歌是较早进入互联网地图领域的服务商,早在2005年就推出了电子地图服务Google Maps(谷歌地图)和电子地图客户端软件Google Earth(谷歌地球),当年谷歌地图的一经推出,便轰动了全世界,原先收费的软件变成了免费产品,兴奋的网民随即发现,那些遥远的国家和地区顷刻间变得触手可急,地球仿佛顷刻间变成了一个小小的村落。

  我在2005年6月写的第一篇关于谷歌地图的文章,用了“令人震撼的Google Maps”这个标题,从这个标题就可以看出当时这个服务带给我的震撼,因为它实在太酷了,我第一次看到了中国城市的卫星地图(当年看卫星地图也算是泄密啊),一些分辨率大的城市竟然都可以看到每条街道的楼房甚至街上的汽车,谷歌让我们看到了整个世界的面貌,如果没有谷歌地图,我可能一辈子也看不到自己居住城市的清晰卫星图片。

谷歌地图下的深圳

图1:谷歌地图下的深圳

  中国互联网地图市场规模

  谷歌提供的地图,不仅仅是免费的,而且完全开放,提供了Google Maps API接口,在很长一段时间里,Google Maps API都是谷歌使用量最大的API接口。这个免费的地图接口引发了世界性的地图应用狂潮,各种形态的基于Google Maps的地图服务相继出现。

  对于中国来说也不例外,据艾瑞咨询的数据显示,2006年中国在线地图市场规模仅2.2亿元,2007年就猛增了127%,达到5.0亿元,2008年,中国地图市场规模继续取得110%的翻番增长,达到10.5亿元。

2006-2012年中国互联网地图服务市场规模

图2:2006-2012年中国互联网地图服务市场规模

  然而,2008年以来,随着中国对于地图服务的监管力度加大,以及地图市场同质化竞争加剧,中国互联网地图的发展也越到了瓶颈,各个互联网地图服务商都在寻找地图服务的创新。

  Web 2.0时代的互联网地图

  早期的互联网地图是Web 1.0,仅仅是个用于显示和查询的地图服务,系统显示什么地图,用户就得看什么地图,地图产品的黏度很低。用户对地图网站的定位依旧停留在工具型网站,导致互联网地图网站的使用率不高,用户忠诚度也不高,很容易使用替代性的地图产品。

  谷歌地图在提高用户黏度上做了不少探索,例如用户标注地图(User Generated Maps)和个人移动定位LBS(Location Based Service)。

  UGC是User Generated Content的英文缩写,即用户创造内容,是Web2.0的重要特征之一。如维基百科、博客等类型的网站主要靠用户自主创作发布内容,形成这类网站的主要内容来源。UGC也是草根文化的体现,用户标注地图(User Generated Maps)则成为互联网地图服务的UGC,普通用户可以创建地图,标注个性化的地标,让被动的“地图用户”转变为主动的“内容提供者”,不但提高了地图网站的用户黏度,还把地图网站变成了一个社会化网络平台。有了用户标注,互联网地图一下子从Web 1.0跨入了Web 2.0的行列。

  Google Earth有两个重要的UGC图层:Panoramio和Google Earth Community,这里不得不提一下Google Earth(谷歌地球)和谷歌地图(ditu.google.cn)的不同,Google Earth是地图客户端软件,更为易学易用,功能也更强大,最重要的一点是,Google Earth对User Generated Maps的良好支持,其中最为著名的就是Panoramio照片图层和Google地球社区图层,而在中国版的谷歌地图服务中,并没有启用UGC图层。

谷歌地球软件

图3:谷歌地球软件

  Panoramio图层和Google Earth Community图层

  Panoramio照片图层的功能很有趣,可以在Google Earth上显示用户拍摄的照片。Panoramio本身是个网络相册服务,用户使用支持GPS的手机拍摄照片后,上传到Panoramio相册后,经过工作人员审核后,这个照片就会在Google Earth的拍摄地点处显示。除了手机拍摄之外,只要是包含地理位置的数码相片都可以上传,用户可以通过Picasa和Google Earth标记照片坐标

Panoramio照片

图4:Panoramio照片网站

  Panoramio的运营非常严格,用户上传的照片需要符合一系列标准才能被收录,如果用户上传包含人物、汽车或者室内的照片,这样的照片即使含有地理标志,也不会被收录到Google Earth中,因为拍摄照片需要到实地拍摄,且照片需要审核,当局从一定程度上可勉强接受这种运作模式。

  另一个UGC服务:Google地球社区就没有这么走运了,Google地球社区是一个地标图层,用户在Google Earth官方论坛bbs.keyhole.com注册用户即可发布地标,不需要上传照片,用户可以在任何区域标注任何地标,哪怕自己没有去过的地方,这就形成了一种不受管制的自由社区,人人都可以自由的标注各个建筑物的信息,包括各种所谓的涉密信息(例如军用机场、军营、飞机、舰艇、国家领导人的住所等),这是当局很不喜欢的事情,因此需要对这些自由信息加以管制,Google地球社区一度成为最具争议性的话题。

Google Earth Community图层和Panoramio照片图层

图5:Google Earth Community图层和Panoramio照片图层

  因此,我们也渐渐明白了,为什么同为地图服务,谷歌地图(ditu.google.cn)和谷歌地球(Google Earth)在中国会受到完全不同的两种待遇,谷歌地图进入了中国并至今在中国运营,服务器在北京,而谷歌地球(Google Earth)却从来没有正式进入过中国,虽然Google Earth在中国有很多人在用,甚至于CCAV也在自己制作的节目中频繁使用Google Earth软件,享受着Google Earth给自己的电视节目带来的绚丽效果,忽悠着大众,但却在相当长的时间里不遗余力地抨击Google Earth这个软件,是什么原因让CCAV对于Google Earth产生了这种又爱又恨的复杂感情呢?原因就是UGC - Google Earth Community图层。

  国外LBS(Location Based Service)应用

  互联网地图和GPS手机整合点之一就是LBS“基于位置的服务”,随着3G时代来临,位置服务逐渐被广大的用户所接受,2008年以来,GPS手机销售的爆发性增长,基于LBS的市场也在快速成长,并且蕴藏了巨大的商机,众多通信运营商、地图厂商、软件开发商等积极投入其中,大力推进LBS服务。Google也先后发布了多个LBS应用,包括Google Latitude(谷歌纵横)和Google Buzz,Google Latitude在2009年就推出了,Google Latitude支持Android、Blackberry、S60、Windows Mobile四种智能手机,非智能手机用户(例如S40手机)目前还无法使用这项服务。

“谷歌纵横”(Google Latitude)服务

图6:“谷歌纵横”(Google Latitude)服务

  Google Buzz从一开始就可在移动产品中使用,对于iPhone和Android都有较好的支持,用户使用支持GPS手机的手机发布信息后,可以显示出详细的地理位置,旁边还有该位置的地图显示链接。不过对于不支持GPS的手机和电脑用户,Buzz并没有提供位置定位服务。

Google Buzz对地理位置的支持

图7:Google Buzz对地理位置的支持

  Google Buzz目前已经和谷歌地图(Google Maps)进行不同程度的整合,在Google Maps中也可以看到用户发布的信息,这种整合同样令人震惊,我们可以看到某个城市里某个建筑物里人们的发言,而在iPhone中,用户还可以看到周围有谁在Buzz,以及Buzz了什么。微博客在这时有了另一个维度的显示模式。

Google Buzz和Google Maps的整合

图8:Google Buzz和Google Maps的整合

  除了谷歌之外,Foursquare也是基于位置的LBS应用,不同的是,Foursquare有SNS的概念,用户通过Checkin能得到商家的奖励,用户之间有粉丝和关注的关系,这项服务在中国并没有什么太多的风险,因为用户去的最多的地方是商家,敏感区域(如军事基地)用户进不去,也就没法Checkin了。

Foursquare应用

图9:Foursquare应用

  随着3G加速位置服务普及,个人用户的规模化发展使得移动位置应用成为一种大众化3G应用,其前景非常不错。

  中国LBS的前景

  中国的LBS发展会是怎样的呢?我们知道LBS服务本身并不是什么敏感的服务,每个人只是标注自己去过的地方,用户创建的地标也是自己能去的地方,不能去的所谓“秘密地点”用户也无法标注,因此,这个服务和Panoramio服务一样,也是可以接受的服务,但如果进行监管却缺乏一个好的借口。

  目前流行的大量LBS服务的基础又是互联网地图服务,这里面存在着非常巨大的商业利益,控制了互联网地图服务,无疑会在即将爆发的移动互联网蓝海中获得巨大的收益,正因为互联网地图服务的巨大商机,使得某些机构非常想进入这个领域“淘金”,清理走民营网站后,这些机构就可以顺势取而代之,这种现象应该和去年的“互联网视频服务”的管理类似,通过“许可证”等方式控制民营网站进入互联网地图领域,最新修订的《互联网地图服务专业标准》在这个时候发布也是可以理解的了。

  国家测绘局公布了《互联网地图服务专业标准》之后,国家测绘局副局长在回答记者提问时表示,“互联网地图承载的地理信息是国家重要的基础性、战略性信息资源,具有严肃的政治性、严密的科学性和严格的法定性”,“互联网地图服务...也带来了一些网络信息安全问题,是一把‘双刃剑’”,“互联网地图出现问题,不仅损害消费者利益,严重的甚至损害国家安全利益和民族尊严,甚至会带来恶劣的政治影响”。国家测绘局声称互联网地图服务需要牌照才能运营,到2010年底,未申请互联网地图服务资质仍从事互联网地图服务活动的,将依法查处并公开曝光。

  目前类似Google Maps的服务在在中国有很多,最有力的一个竞争对手是百度地图,除了卫星地图功能之外,百度地图具有大部分中国版谷歌地图的功能,包括地图API,值得一提的是,百度API的接口和Google Maps API的接口几乎一模一样。

  结语

  互联网地图服务无疑将会有广阔的市场前景,差异化竞争策略是未来在线地图网站的安身立命之本,在商业利益和对自由信息管制的双重驱动,中国互联网地图的未来发展将面临的是异常激烈和残酷的竞争,各个地图企业只有不断推出创新的地图产品来增强用户的黏度以及不断的探索盈利新模式,才能在激烈的竞争中获取先机。

2010年5月23日星期日

Google SSL搜索在FireFox和IE8中的解决方案

  Google终于开通了我们梦寐以求的SSL搜索功能,这有什么好处本人不再在这里赘述。然而,我们每次输入https://www.google.com 总是自动跳转到 http://www.google.com.hk 的主页,这极其不方便我们使用SSL搜索功能。

  当然,万事总有解决之道,月光大哥先前在月光博客中讲了在Chrome中使用Google SSL搜索的方法。现在,笔者在这里说一下在FireFox和IE8中的解决方案(个人方法,如若不好,请批评指正,大家可以在QQ群52189480中找“阿莫”讨论)。好吧!废话不再多说,马上为大家演示:

  第一步:IE8和FireFox的主页都必须设置成“www.google.com/ncr”(必须)

  为什么要设置以上网址为主页?因为我们每次进入https://www.google.com 时必须先打开Google的全球英文主页一次,所以这样便省去许多事(浏览器打开之后关闭此页面即可)。这样做的目的是为了防止我们在下面的SSL搜索过程中不会跳转到.HK的页面。当然,习惯保留Cookies的朋友可以直接设置NCR的页面为中文,关于这点不再赘述。请参考如下图:

Google SSL搜索在FireFox和IE8中的终极解决方案

图:FireFox设置www.google.com/ncr

Google SSL搜索在FireFox和IE8中的终极解决方案

图:IE8下设置www.google.com/ncr

  第二步:IE8搜索中设置Google SSL搜索。如下图:

Google SSL搜索在FireFox和IE8中的终极解决方案

图:修改IE8搜索的注册表项

  1)运行注册表“Regedit”

  2)找到“[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerSearchScopes{0C28BD40-2A50-49DD-B58B-F62861C353C8}]”(可直接输入“Google”进行F3搜索)。

  3)找到该项下的“URL”选项,修改数值数据为“https://www.google.com/search?hl=zh-CN&q={searchTerms}&lr=”。 没错,就是在原来的“http”后面加一个“s”。(请参考上图)
如上保存完成后,当你打开IE自动打开过Google NCR网站后,你就可以直接在IE内置的搜索框中使用Google的SSL搜索了。当然,前提是你IE添加了Google搜索,而且它是默认的搜索引擎。至于如何添加和设为默认,这个不是本文需要讨论的事。

  第三步:Firfox搜索中设置Google SSL搜索。如下图:

  1)在Firefox的个人设置文件夹下(例如:C:Documents and Settings用户名Application DataMozillaFirefoxProfilesogmpqmnw.default )(Win 7下和用户名等可能不同)找到一个叫做“search.json”的文件。

Google SSL搜索在FireFox和IE8中的终极解决方案

  2)右键选择用记事本打开该文件,搜索“http://www.google.com/search”,然后将这个网址替换为“https://www.google.com/search?hl=zh-CN&”。然后保存。

Google SSL搜索在FireFox和IE8中的终极解决方案

  如上完成后,当你启动FireFox打开过Google的 NCR网站后,你就可以直接在Firefox内置的搜索框中使用Google的SSL搜索引擎了。当然,前提是你的Firefox中有使用Google搜索。
最后,还有点小贴士——其实,你只要将www.google.com/ncr设置为主页,在打开浏览器时自动打开过一次后,你就可以直接进入到https://www.google.com了,你可以将其设置保存为书签,或者更为方便的——你可以直接设置“https://www.google.com/webhp?hl=zh-CN ”或“https://www.google.com/search?hl=zh-CN”为书签,这样点击书签就直接启动SSL的中文搜索了。

  阿莫非IT专业人士,以上方法为个人意见。如果您觉得有什么不对,或者有更好的方法,欢迎指正和讨论!

  来源:读者投稿,作者:阿莫

2010年5月22日星期六

Google支持HTTPS加密搜索

  Google的官方博客曾经在上周发布消息称,Google会在下周部署HTTPS(超文本加密传输协议)加密技术的搜索方式,以确保搜索过程的安全性,Google没有食言,现在,HTTPS的Google搜索已经可以使用了。

  Google在官方博客介绍说,普通的HTTP浏览是不安全的,用户和服务器之间的通讯会被第三方监听和干扰,对于Google来说,你在Google搜索的词语会被第三方截获,如果第三方不希望你在Google搜索这个词语,还可以通过技术手段阻止用户的搜索行为。

  这也就是Google发布的beta版本的SSL加密搜索的原因,在HTTPS的Google搜索中,用户搜索的信息将无法被第三方获取,也不会出现数据泄漏的问题。目前HTTPS的Google搜索覆盖了Google网页搜索的部分产品,目前还不支持图片搜索和地图搜索,而其他搜素(资讯、博客、视频、动态等)都支持。

Google支持HTTPS加密搜索

  对于中国用户来说,HTTPS的加密搜索一劳永逸地解决了中国用户对于Google搜索的稳定性问题,我们知道,从某一天开始,一些常用的中文单字在Google中被屏蔽,搜索包含“吴”、“温”、“贾”、“李”、“习”、“贺”、“周”、“胡”等字的词语,会出现“连接被重置”,这导致一些很常用的词语,例如“学习”、“胡萝卜”、“温度计”等无法在Google搜索,而现在,使用HTTPS的Google,我们可以搜索你想搜索的任何词语,再也不会出现“连接被重置”了。

  我早在2006年的时候就建议Google能支持HTTPS搜索,没想到要等这么多年才如愿所偿,HTTPS虽然较为耗费系统资源,但对于中国用户来说意义实在太大了。

  为了你的用户隐私、安全和稳定性,现在就把你的Google搜索地址更换为 https://www.google.com 吧。

  对于中国用户来说,如果你访问 https://www.google.com 自动跳转Google.com.hk,请点一下页面底部的Google.com in English,然后再访问https的Google即可使用。

  Google Chrome浏览器默认在地址栏输入关键字即可搜索,默认是HTTP方式,我们可以设置地址栏默认Google HTTPS搜索的方法,右击地址栏-修改搜索引擎,点“添加”,加上信息“https://www.google.com/search?hl=zh-CN&q=%s”,如图所示,将其设置为默认即可,这样,我们在Google Chrome浏览器中就能默认使用Google HTTPS进行搜索了。

Google Chrome支持HTTPS加密搜索

在Twitter应用中使用OAuth

  Twitter官方宣布将在2010年6月30日终止对Basic Authorization验证方式的支持,全面启用OAuth的认证方式,广大使用API的天朝网民纷纷表示鸭梨很大,众多使用Basic Auth认证的第三方程序如何适应这个新的变化,本文将会介绍如何在Twitter应用中使用OAuth认证。

  一、介绍OAuth

  在Twitter未支持OAuth之前,使用的是Basic Auth认证。Basic Auth要求Twitter应用把用户名和口令直接附加在HTTP或HTTPS协议头中发送给Twitter API。这样,Twitter应用势必要求用户在其应用中输入自己的Twitter用户名和口令,从而可以把Twitter的用户名和口令附加在HTTP(S)协议中发送给Twitter。这样Twitter应用开发者就能知道使用了他的Twitter应用的用户的所有用户名和密码,这样开发者就能随意使用这些Twitter账号登陆Twitter做任何操作了。比如,可以修改用户的Twitter密码,甚至直接去Twitter的Settings中删除这个帐号。这将带来潜在的安全性问题。

  而使用OAuth,Twitter应用无需知道用户的Twitter口令,只需要得到Twitter和用户双方的授权信息(后面会说这个授权信息——其实就是Token)即可。这样,Twitter应用开发者就不知道用户的Twitter口令,只能使用这个授权信息(Token)做有限的操作,无法修改用户的Twitter口令,也无法删除用户的Twitter账号。这在安全性上有了很大提高。

  二、OAuth认证流程

  要使用OAuth,首先要去Twitter中注册一个自己的Twitter应用,注册地址:http://dev.twitter.com/apps/new 。注册之后,会得到自己Twitter应用的Consumer key和Consumer secret,都是一个字符串。之后就可以进行OAuth的认证过程:

  2.1、Twitter应用把Consumer key和Consumer secret放入HTTP请求中发送到Twitter API: https://api.twitter.com/oauth/request_token ,得到一个Request Token

  2.2、Twitter应用重定向用户浏览器到 https://api.twitter.com/oauth/authorize?oauth_token=<Request Token> ,其中<Request Token>为在2.1中取得的Request Token

  2.3、Twitter官方网站上提示用户登录,之后提示用户选择是否允许此Twitter应用访问自己的账号。这个选择一次即可,之后在2.5中Twitter应用可以记录用户的选择(正因为OAuth的认证过程必须在官方网站上进行,所以对于某些国家的普通民众来说,相比Basic Auth是一个不方便的地方)

  2.4、用户选择允许之后,浏览器被重定向到Callback URL,并附加Verifier参数和新的Token。这个Callback URL是Twitter应用用于接收Verifier和新的Token的地址。Callback URL是注册Twitter应用需要填写的,也可以在2.1中在HTTP请求中和Consumer key和Consumer secret一起发送到Twitter API。由于Callback URL是浏览器访问的,并不是由Twitter服务器访问的,所以如果需要做测试的话,这个Callback URL可以是局域网地址或者是本机上的Web服务地址,比如可以是 http://localhost:8080/receive.jsp 。

  2.5、Twitter应用取得Verifier和新的Token后,把他们一起发送给Twitter API: https://api.twitter.com/oauth/access_token 取得一个Access Token。之后使用这个Access Token就可以调用各种Twitter API了。之后在使用每个Twitter API的时候,把Access Token附加于每一个Twitter API的HTTP请求中即可,Twitter API的使用,请见月光博客:http://www.williamlong.info/archives/2152.html 。Twitter应用可以把这个Access Token保存下来,以便以后直接使用,不需要用户重复去Twitter官方网站授权了

  三、使用OAuth

  由于OAuth的认证比较复杂,并且HTTP参数繁多。如果从头开始做OAuth势必需要把各个参数正确的并按一定顺序的填写到HTTP请求中。好在我们有各种开源的OAuth库(参考:http://dev.twitter.com/pages/oauth_libraries )可以使用。在这里,我把OAuth的Java库Scribe作为例子进行介绍(考虑到国内情况,我对Scribe做了一些修改,使其支持代理服务器):

  3.1、创建一个twitter.properties,其中的内容为:

    consumer.key=<Twitter应用的Consumer Key,可以去Twitter官方网站中自己的Twitter应用的参数中找到>

    consumer.secret=<Twitter应用的Consumer Secret>

    request.token.verb=POST

    request.token.url=https://api.twitter.com/oauth/request_token

    access.token.verb=POST

    access.token.url=https://api.twitter.com/oauth/access_token

    callback.url=http://localhost:8080/receive.jsp

  3.2、读取twitter.properties到Properties对象中:

    Properties tp = new Properties();

    tp.load(TwOAuth.class.getResourceAsStream("/twitter.properties"));

    BufferedReader stdinRd = new BufferedReader(new InputStreamReader(System.in));

  3.3、生成代理服务其对象(国内用户使用,因为国内无法直接访问Twitter API):

    Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("HTTP代理服务器地址", HTTP代理服务器端口));//如果不使用代理服务器,请写为Proxy proxy = null;

  3.4、取得Request Token(对应2.1):

    Scribe sb = new Scribe(tp);

    Token tk = sb.getRequestToken(proxy);

  3.5、重定向用户浏览器(由于例子是命令行程序,所以直接打印出访问地址,由用户自己打开浏览器访问),返回Callback URL后,提示用户输入Token和Verifier(如果是Web程序,可以直接通过Callback URL中获取Token和Verifier。Twitter认证之后,浏览器地址栏中就会出现Token和Verifier)(对应2.2、2.3、2.4):

    System.out.println("Please visit https://api.twitter.com/oauth/authorize?oauth_token=" + tk.getToken() + " and get the token and verifier, then input the token:");

    tk = new Token(stdinRd.readLine(), tk.getSecret());

    System.out.println("And please input the verifier:");

  3.6、发送Token和Verifier,取得Access Token(对应2.5):

    tk = sb.getAccessToken(tk, stdinRd.readLine(), proxy);

  3.7、可以开始使用各种Twitter API了,首先我们试验取得用户自己的时间线,结果以Xml格式返回并打印出来:

    Request req = new Request(Request.Verb.GET, "https://api.twitter.com/statuses/user_timeline.xml");

    sb.signRequest(req, tk);//把Access Token附加到HTTP请求中

    Response resp = req.send(proxy);

    System.out.println(resp.getBody());//我们看到打印出很多信息,其中有很完整的时间线信息,只要解析这个Xml就能得到所有的信息

  3.8、再测试更新自己的状态(发推):

    req = new Request(Request.Verb.POST, "https://api.twitter.com/statuses/update.xml");

    req.addBodyParameter("status", "我们Test");//发推内容:我们Test

    sb.signRequest(req, tk);

    resp = req.send(proxy);

    System.out.println(resp.getBody());//我们看到,发推成功。在Twitter中也能看到程序发的推了

  四、后记

  OAuth的基本介绍结束了,最后附上Java版OAuth的源代码和修改过支持代理服务器的Java OAuth库Scribe(点击下载)。其他语言应该也是类似的,各种语言的OAuth库可以参考:http://dev.twitter.com/pages/oauth_libraries 。望大家做出国内直接可用的优秀Twitter应用。

  投稿人Twitter: @davidsky2012 ,投稿人Google Reader: https://www.google.com/reader/shared/lehui99

2010年5月21日星期五

通过开源程序同时解决DNS劫持和DNS污染的问题

  我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址。常用的手段有:DNS劫持和DNS污染。关于DNS劫持和DNS污染的区别,请查找相关文章。

  对付DNS劫持的方法很简单,只需要把系统的DNS设置改为为国外的DNS服务器的IP地址即可解决。但是对于DNS污染,一般除了使用代理服务器和VPN之类的软件之外,并没有什么其它办法。但是利用我们对DNS污染的了解,还是可以做到不用代理服务器和VPN之类的软件就能解决DNS污染的问题,从而在不使用代理服务器或VPN的情况下访问原本访问不了的一些网站。当然这无法解决所有问题,当一些无法访问的网站本身并不是由DNS污染问题导致的时候,还是需要使用代理服务器或VPN才能访问的。

  我们知道,DNS污染的数据包并不是在网络数据包经过的路由器上,而是在其旁路产生的。所以DNS污染并无法阻止正确的DNS解析结果返回,但由于旁路产生的数据包发回的速度较国外DNS服务器发回的快,操作系统认为第一个收到的数据包就是返回结果,从而忽略其后收到的数据包,从而使得DNS污染得逞。而某些国家的DNS污染在一段时期内的污染IP却是固定不变的,从而可以忽略返回结果是这些IP地址的数据包,直接解决DNS污染的问题。

  在这里我用Java做了一个简单的小程序并提供源代码,在本机运行后,就能在没有代理服务器和VPN的情况下,直接就能解决DNS污染的问题了。如果没有安装Java,可以去http://www.java.com/上安装一个。解开AntiDnsPollution.zip之后,运行filter.bat(Linux用户请运行filter.sh),等待启动成功。然后设置系统的DNS服务器的IP地址为127.0.0.1即可。然后打开一个命令行窗口,执行nslookup一些被DNS污染的域名,是不是解析正确了?

  下面说一下这个小程序的具体工作流程:首先程序启动后,会从文本文件dnsfilter.properties中读取配制,然后去一个不存在的DNS服务器——但这个IP地址却是国外的——中进行DNS查询被劫持的域名,然后返回的IP地址就是被劫持的IP,被记录下来,之后正常的DNS查询中,就自动把这些IP地址过滤了。这个程序以后会不定期更新,或许也会出。NET版本,请在我的Google Reader上关注更新。

  对于高级用户,可以手动用文本编辑器修改配置文件dnsfilter.properties:

  BindToIP:小程序启动后作为DNS服务期绑定53端口,这里指定绑定的IP地址

  DnsServer:国外的DNS服务器,可以设置为OpenDNS或Google DNS服务器的IP地址

  ResponseTimeout:DNS查询返回超时的时间(毫秒)

  TestDnsServer:测试DNS服务器,请指定一个不存在的DNS服务期,但要求IP是国外的

  TestRespTimeout:测试DNS服务器的查询返回超时时间(毫秒),也就是DNS劫持的旁路回复超时时间

  TestCount:测试DNS服务器的次数,为了得到所有被劫持的IP地址,需要一定的测试次数

  小程序的执行文件和源代码在同一个压缩包内,请点下面的链接下载(含源代码)。

  下载:不依赖于Java环境的可执行程序(含源码)

  下载:依赖于Java环境的程序(含源码)

  投稿人Email: lehui99(at)gmail.com ,投稿人Google Reader:https://www.google.com/reader/shared/lehui99

2010年5月19日星期三

南方都市报:网上标注地图被指泄密引网友质疑

  南都讯记者 谭人玮 实习生 陈淑贤 5月17日,央视《焦点访谈》节目报道,深圳网友小龙的网站“月光论坛”因在网络地图上标注了涉及“国家军事机密”的地点而被处罚。小龙在报道出来之后上网辩解并提出质疑,在接受南都记者采访时表示他不能认同处罚。

  《焦点访谈》报道次日,国家测绘局在其官网发布新的《互联网地图服务专业标准》,首次将手机、掌上电脑等无线互联网络调用的地图等纳入互联网地图管理范围,并将在今年12月底,对未申请互联网地图服务资质但仍从事互联网地图服务活动的单位依法查处。记者注意到,该标准规定“存放地图数据的服务器设在中华人民共和国境内”(注:月光论坛的主机地址在美国)。

  央视“月光论坛”被查处

  据央视焦点访谈节目5月17日报道,2010年4月,深圳市规划土地监察支队发现一个名为“月光论坛”的网站,存在大量地理信息涉密的行为。网站把大量国家军事上的信息在地图上展示出来。2010年5月6日,“月光论坛”的负责人小龙接受了执法部门的行政处罚,并承诺对网站进行整改。

  央视报道称月光论坛是一个军事爱好者经常光顾的网络社区,和普通军事论坛相比,月光论坛最显著的特点在于,它直接链接到国外一家地图网站的搜索引擎上。用户可以免费浏览全球各地高清晰卫星图片,并在上面标注出地理坐标和相关信息。

  执法人员找到月光论坛网站的负责人小龙,通知他来配合调查。央视报道称小龙是一个地图爱好者兼军事爱好者。国家测绘局副局长解释,某一个区域的卫星影像甚至航空影像不能叫电子地图,因为它没有坐标,一旦你在这个区域获取了一些应该保密的军事设施的地理坐标,它必然就会出现泄密。

南方都市报:网上标注地图被指泄密引网友质疑

  小龙:每天访问只有几十次

  小龙在见到焦点访谈的报道后,在自己的博客上进行解释。他表示当时并不知道在场的记者是焦点访谈的,否则不会说话。

  小龙指出,“解说中,我从一个70后变成了80后,关注IT的科技博客变成了军事发烧友博客,每天不足30个人访问的论坛变成军事爱好者经常访问的网络社区。”

  他表示,月光博客和月光论坛不是同一个网站。月光论坛的访问量极小,他还把第三方流量统计进行截图展示,日均访问量仅有几十次,“因此,月光论坛并不是所谓军事发烧友经常光顾的网络社区。”

月光论坛访问统计

  他向南都记者表示,具体什么等级泄密对方没说。据《深圳市规划土地监察局行政处罚告知书》上所列,具体违法事实是“月光论坛涉嫌非法展示地图”,违反法规及条款是:“《地图审核管理规定》第八条第一款第(一)项。”

  此规定原文是:“下列情况下,单位和个人(以下统称申请人),应当按照本规定向地图审核部门提出地图审核申请:(一)在地图出版、展示、登载、引进、生产、加工前……”这一规定并非针对涉密。

  小龙查询了这个规定,感觉此规定和他的实际情况不符。

  小龙所供职公司的相关人员找他调查情况。同时,月光博客和月光论坛的访问量暴增了很多。他说,“我不认同他们这个处罚(罚款5000元),但执法人员告诉我,可以不罚款。”

  深圳市规划土地监察支队相关工作人员拒绝接受采访,只是表示该案是“接到上面命令去查的”。

南方都市报:网上标注地图被指泄密引网友质疑

  网友:普通人能犯泄密罪吗?

  央视报道援引了《刑法》:“故意或者过失泄露国家秘密,情节严重的,处三年以下有期徒刑或者拘役;情节特别严重的,处三年以上七年以下有期徒刑。”以此“提醒网友,也许您的行为无意中就泄露了国家机密,而泄露国家机密是要被追究刑事责任的”。

  这一说法遭到许多网友的质疑,因为《刑法》第三百九十八条明确规定该法条针对“国家机关工作人员”,网友就此认为央视拿针对“国家机关工作人员”的《刑法》法条来提醒只是在网上标注地图的网友,有误导之嫌。

  记者同时注意到,在《保守国家秘密法》中规定了“公民都有保守国家秘密的义务”。

  小龙的观点也代表了很多网友的看法———“普通的网民在地图上不太可能随随便便发现所谓的‘军事机密’,大多数国内网民发布的所谓涉密地标只是简单将国外论坛的相关地标翻译为中文并上传到国内网站而已。”

  稿源:[南方都市报]  日期:[2010年5月19日]  版次:[AA32]  版名:[网眼]

2010年5月18日星期二

《互联网地图服务专业标准》出台

  国家测绘局近日下发通知,要求各地加强互联网地图服务资质管理。国家测绘局同时下发了最新修订的《互联网地图服务专业标准》。

  新《标准》将互联网地图服务单位资质划分为甲、乙两级,并首次将手机、掌上电脑等无线互联网络调用的地图等纳入互联网地图管理范围。国家测绘局将于 6月为首批符合互联网地图服务甲级资质的单位颁发证书。

  分析人士指出,互联网地图服务标准的出台,将对那些提供基于地理位置服务(LBS,Location Based Services)的初创企业产生较大的影响。地理位置服务主要是通过移动终端和移动网络的配合,确定移动用户的实际地理位置,从而提供用户所需要的与位置相关的服务信息的一种移动通信与导航融合的服务形式,也是目前国内外最火热的新兴互联网应用之一。

  根据人民网报道,国家测绘局有关负责人表示,此次新修订的《互联网地图服务专业标准》针对这些问题,结合互联网地图服务市场实际发展情况,在旧《标准》的基础上进行一系列适当的修改和补充。

  一是重新将互联网地图服务的专业范围划分为地图搜索、位置服务,地理信息标注服务和地图下载、复制服务、地图发送、引用服务四项;

  二是针对专门从事互联网地图开发利用的企业不具备或者很少有测绘专业技术人员的情况,适度放宽了对地图制图人员的硬性考核,规定互联网地图服务从业单位具备相应数量的地图制图人员或计算机类专业技术人员的,均认定为符合要求;

  三是强化了保密管理要求,在安全审校人员、地图数据使用、保密管理制度等原有考核指标的基础上,增设了档案管理方面的人员、制度、机构、装备、安全等考核指标,提出了严格的考核要求;

  四是针对传统测绘单位的质量管理考核即ISO9000系列质量体系不适用于互联网地图服务活动的现状,调整了质量管理考核,制定了针对互联网地图服务单位的质量管理制度,并由省级以上测绘行政主管部门负责考核;

  五是针对传统的项目合同、服务总值不适用于互联网地图服务业绩考核,而同时尚未有针对互联网地图服务的权威、科学、适用的业绩考核办法,新《标准》取消了业绩考核指标。

  中央电视台《焦点访谈》栏目昨晚也播出了名为《警惕互联网地图泄密》的节目,该节目称,互联网地图在给人们带来便利的同时,也导致一些国家机密信息被泄露。

  来源:国家测绘局网站