2009年8月8日星期六

免费开源IIS过滤器

  ISAPI是Internet Server Application Programming Interface 的简称,ISAPI过滤器是IIS进程内的DLL(进程名为inetinfo),它在web服务启动时被加载,服务停止时退出。

  IASPI过滤器可以用来定制认证过程、压缩、加密、流量分析、请求分析、请求过滤等等,从某种意义上来说,ISAPI过滤器可以被看作是对IIS进行定制和优化的工具。

  ISAPI过滤器可以定制以下的处理:接收HTTP协议头预处理、发送HTTP协议头预处理、发送生数据预处理、获得生数据预处理、HTTP会话结束信息处理、自定义的安全认证机制、URL映射信息处理、日志记录处理等。灵活利用这些定制处理,可以完成许多看似难以实现的功能,得到意想不到的效果。但是ISAPI过滤器使用不当也会影响服务器的性能。

  下面就是几个常用的免费开源的IIS ISAPI过滤器:

  ISAPI_Rewrite http://www.isapirewrite.com/

  Ionic's Isapi Rewrite Filter http://iirf.codeplex.com/

  LeechBlocker http://www.michaelbrumm.com/leechblocker.html

  Open Source URL Rewriter http://urlrewriter.net/

2009年8月7日星期五

Z-Blog文件复制插件

  在同一个网站使用过多个Z-Blog系统的用户,可能会需要这样的功能,就是从一个Z-Blog调用另外一个Z-Blog的信息,例如最新文章、最新评论等,本插件即可完成这样的功能。

  在Z-Blog 1.8系统中,可以在INCLUDE目录下创建文件,然后直接通过模板引用,模板调用的方法是<#CACHE_INCLUDE_文件名(不要后缀且全大写)#>这样的标签,系统会自动引用INCLUDE内相应文件内容。例如:“<#CACHE_INCLUDE_CATALOG#>”,系统会自动读取INCLUDE目录内的catalog.asp并替换标签。

  本插件里定义了一个来源文件和一个目标文件,来源文件可以指定第二个Z-Blog文件中INCLUDE目录下的文件,例如最新文章(previous.asp)等,目的文件为第一个Z-Blog文件的INCLUDE文件名,系统会自动将文件进行复制操作,这样,在第一个Z-Blog中就可以看到其他Z-Blog的最新文章列表了。

  例如,月光博客有两个子博客,为“月光微博客”和“Google Earth观察”,通过这个插件,可以在月光博客的左侧的侧栏自动显示那两个博客的最新文章,具体显示效果请参见月光博客首页的左侧侧栏。

  此插件没有设置界面,文件名的设置请直接修改include.asp文件。

  点击下载:Z-Blog文件复制插件

2009年8月5日星期三

千橡校内网更名人人网

  近日,千橡集团宣布重大战略调整,其旗下校内网正式改名为人人网,其域名由原先的“校内”转向“人人”,其用户群定位由原先的大学生拓展至全体网民。

  这个消息是很惊人的,因为校内网几乎是千橡用钱烧出来的一个SNS网站,校内网于05年12月成立,在不到四年的时间里积累了7000万名用户,服务器数量从20台增加到5000台,已经成为中国最大的校园SNS网站,想当年校内网的“注册送鸡腿”的推广手段,就靠着一根根鸡腿,一夜之间赢得所有大学饥饿男女的心,所有人拿着校内网的注册码,奔向食堂,奔向鸡腿,一个月的注册量曾经另众多同类网站瞠目结舌,而转眼之间,校内网就宣布改名并放弃原有的品牌,实在非常可惜。

  千橡从校内转化为人人,证明以学生为主的校内网已经被以公司白领为主的开心网彻底击败,从一定程度上证明了,以中国大学生为用户基础的商业网站很难成功,因为大学生虽然数量众多,但没有稳定的收入,也缺少消费能力和商业价值。

  不仅仅如此,大学生往往还会对社区网站的发展起到负面影响,例如大学生通常政治上较为激进,精力旺盛,容易组织大规模的社团活动,并且很不好管理,网上的活动很容易就发展为大规模的线下活动,例如当年的反日游行和抵制家乐福活动,早先国内众多校内BBS就因此而经常被关闭。而校内网以大量学生为核心,必然会受到强大的外部压力,再加上商业前景黯淡,改弦易辙也实属必然。

如何建立个人网上品牌

  对于品牌而言,无论是你的公司或是自己,始终一致是至关重要的。品牌的概念是将某些名称、图像或设计,这些要素所形成的一种形象认知度,总体来讲它属于一种无形资产。如果您的名字或图像一直在不断变化,那么它怎么可能成功呢?

  始终使用相同的用户名

  无论是在什么地方注册服务,都要坚持使用完全相同的用户名。你应该在每一个系统都使用相同的名称,包括所有的即时通讯软件(Skype、AIM、MSN、雅虎通等),任何社交网站中创建的个人资料或页面(Facebook、MySpace、Twitter、LinkedIn、Flickr、Bebo等),以及你使用的任何一个社会化媒体(Digg、Stumble Upon、Reddit、del.icio.us等)。此外,你和他人沟通使用的电子邮件名称也应该使用这个名字,并且这个邮件要在公司文档或者市场营销中使用。

  选择一个用户名,坚持下去,每次都使用同样的拼写和结构。对于我的博客来说,我一直使用williamlong这个名字,从来没有改变,除非别人抢注这个名字。

  始终使用相同的图像

  当你在一个Web服务上创建一个帐户的时候,大多数系统会要求你上传个人资料图片。务必让你注册的每一项服务都使用同一张图片。如果你是要宣传公司的品牌,那么使用公司的LOGO。如果你想建立自己个人品牌,那就在所有的Web服务中使用完全相同的头像。

  对于公司来说,主要有两个标志图像需要使用,实际的公司LOGO图片以及很小的favicon小图标。这个小图标应该是网站上的favicon图标,可以在只允许很小图片的服务上(例如即时通讯客户端)使用。

  保持一致的设计风格

  某些服务,例如Facebook可能无法实现,但对于有些网站,如MySpace和Twitter的,我们可以使用一个自定义的模板风格来建议一个独立的品牌形象,也就是在个人资料上使用同一个背景和LOGO图片,如果有可能的话,在你的博客或者网站上也使用相同的设计模板。

  使用电子邮件签名

  这个听起来似乎没什么必要,但实际上,电子邮件仍然是最受欢迎的进行交流和工作的方式。如果你每天都要处理电子邮件,那你应该做一些设置,保持你的电子邮件一致。最简单的方法就是建立一个电子邮件签名,它会在发送邮件的时候自动添加到每个电子邮件的底部。

  对于论坛来说也是同样的道理。

  推广你的品牌

  为了使你的个人品牌获得成功,你要在各种不同的用户群中显得出众,首先确保您已经做好了一个最基本的网站,并建立了一个邮件地址。这些可以在各类社交网站或社会化媒体上使用。你还应该有至少一个即时通讯帐户。在这之后,你应该搜索一下同行的博客,并参与评论和留言,注意要使用相同的头像和用户名,使用Gravatar可以自动完成这个功能。

  最后,你需要花一些时间来浏览和你博客主题相关的社交类网站,并在上面建立个人档案。这些社交类网站包括论坛、SNS网站、行业会议网站等等。

  但是,切记不能在过多的网站中推广你的品牌形象。虽然在大量网站上宣传似乎很美好,但同样重要的是,你是那些网络的贡献者。只有积极参与到社交网络的交流中,才能较为顺利的推广个人品牌,而如果推广的网站太多,则没有人能有那么多精力放在上面。

  总体而言,虽然个人品牌不会直接给你的博客带来流量,并且个人品牌怎么才算成功很难衡量,但历史已经证明,具有良好品牌的公司也业界会得到越来越多的认同并成为行业领袖。以上的方案可以帮助你或你的公司在丰富多彩的网络上成功建立个人或公司的品牌。

  英文原文:How To Build Your Online Brand
  中文翻译:William Long
  中文译文:如何建立个人网上品牌

2009年8月4日星期二

你的密码还安全吗?

  密码安全是一个系统的基本安全要素,读者这次投递的稿件论述只用MD5进行密码HASH并不安全,如果将这个HASH数值保存在数据库中,有可能会被人破解。我认为,比较安全的密码保存方法是MD5(用户名+用户密码+随机数),这个HASH数值不仅无法反向破解,而且无法替换,完美的解决了读者的这个疑问。以下是读者的投递文章。

  你的密码安全吗?你觉得你的密码已经很复杂了?密码再复杂,都有可能被破解掉。

  让我们做个实验吧,你手里有数据库吗?如果有,用数据库的函数计算你的密码md5值。

  如果没有,可以到这个网站去计算。为了你的密码安全,不要用“真”的密码去试,虚拟一个密码吧。我拿密码“goodday ”来试验。在上面的网站计算goodday的md5值(32位)。得出结果0CF21CE35322D2E56D745E319B933470

  我们拿这个值到这个网站去破解吧。得到的结果是什么?goodday!说明这个密码并不安全。

  为什么这么说?假如你是某论坛的用户,因为这个论坛管理不当,或其它人为原因,导致数据库被“偷”。那你的用户名和密码就被hacker拿去了,他们可以通这类似的网站“破解”你的密码。有了你的用户和密码,可以在这个论坛以你的名义发贴,修改。可以查你相关的资料,然后以相同的密码试你在其它应用上的帐号,比如说QQ,facebook之类的。

  md5的反算是相当麻烦的,甚至可以说是不可行的(据说山东某大学的女博士破解了它,但破解方法有多少人懂?)。但为什么可以通过md5值“破解”掉密码呢?其实cmd5这个网站做得相当的简单,它只是不是用数据库两个字段而已,一个字段保存原来的字符串,一个字段保存字符串的md5值。它通过存储过程(或其它程序)插入一些字符串(如密码字典),md5值由数据库生成。页面查找只是查找相关记录而已。

  然后,这个字符串添加的渠道就是个问题了。这些网站似乎还没有意识到这个利益。

  假如说,这些网站提供用户查询功能,包括md5的正向运算,用户好奇要算算自己密码的md5值。算完后,网站“顺便”把它的密码和md5值保存起来,日积月累,那这个数据库就相当于一个超大的密码字典,卖出去肯定值钱。

  如果有人以这个数据库作为密码字典写破解程序,破解起来就容易多了。

  我觉得,这些都应该引起sysadmin,DBA,技术总监和网络警察的注意。

  传统密码离它死去的日子还有多远?

  作者:TonyLiao 原文出处

  另外,对加密系统感兴趣的同学可以参考我的一篇文章《加密技术在企业数据安全中的应用》。

2009年8月3日星期一

基于GAE的Twitter RSS Feed过滤工具

  经常使用Twitter的用户,一定会遇到同步Twitter信息到其他平台的功能,通常都会使用RSS Feed的方法同步。当用户使用Twitter的RSS Feed的时候,会发现这个Feed中包含用户的username,看着很不舒服,并且不能过滤掉@回复的信息。

  这时候,我们就需要一个过滤程序,对Feed进行处理,使用程序自动过滤掉原始Twitter Feed中的用户名,同时还过滤掉所有回复给他人(包括RT)的信息,只保留自己的信息,然后重新以RSS Feed的方式输出,供其第三方应用程序使用,例如,可以在TwitterFeed中加入这个RSS Feed地址,然后使用TwitterFeed更新Hellotxt,来实现通过Twitter更新多个社会化网络。

  先前我曾经介绍过一个基于PHP的过滤程序,可以使用PHP语言实现这个功能,现在,我将这个程序使用Python改写并开源,该项目名称为twitter-feed,使其可以在Google App Engine上使用。

  将其放在Google App Engine的好处是稳定和免费,不用购买虚拟主机就可以实现,稳定性也很好。

  安装使用说明:

  下载方法,使用TortoiseSVN检出这个SVN地址,然后,编辑app.yaml,修改为自己的appspot应用名,接着,修改feed.py,将Twitter username修改为自己的Twitter用户名,然后就可以按照此文的方法进行发布,执行 appcfg.py update 目录名,使用Gmail帐号和密码,就可以发布了。

  发布之后,过滤的Feed地址应该是myapp.sppspot.com/feed或者myapp.sppspot.com/feed.py,使用这个Feed地址即可替换Twitter原有的Feed地址。

2009年8月2日星期日

Google App Engine使用简介

  Google App Engine是Google提供的基于Google数据中心的开发、托管网络应用程序的平台,每个 Google App Engine 应用程序都可使用500MB存储空间,以及可支持每月约500万页面浏览量的CPU和宽带。目前每个用户可以免费创建十个应用。

  下载开发环境

  Google App Engine SDK 下载地址http://code.google.com/intl/zh-CN/appengine/downloads.html

  Python 2.5.4 下载地址http://www.python.org/download/releases/2.5.4/

  本地调试

  使用dev_appserver.py myapp在本地启动Google App Engine服务,然后通过http://localhost:8080访问自己的应用。

  dev_appserver.py --port=9999 myapp 指定端口号

  发布应用

  使用 appcfg.py update myapp来发布开发好的应用。发布好的应用可以使用 myapp.appspot.com 来访问。

  相关资源

  开发人员指南 http://code.google.com/intl/zh-CN/appengine/docs/

  开发示例 http://code.google.com/p/google-app-engine-samples/

  精选文章 http://code.google.com/intl/zh-CN/appengine/articles/

  发布第三方程序到Google App Engine

  SVN checkout 源代码,放到一个目录中,

  进入目录,编辑app.yaml,修改为自己的应用名

  执行 appcfg.py update 目录名

  比较有用的第三方应用有:

  GAppProxy http://code.google.com/p/gappproxy/

  birdnest  http://code.google.com/p/birdnest/

  欢迎大家补充。