2005年06月29日

http://spaces.msn.com/members/mimi19730930/写得“门户之悔”,自己有些不同意见。现在互联网上有很多应用,确实在刚起来的时候,没有人能打包票这个可以成功,大家都处在探索阶段。当时没有去做,现在来说不应该后悔,而是做了,没有做好,才应该后悔。

门户网站,各个都有钱,有人,有经验。没有去做,可以说是没有想到,对将来的目标判断不准,没有人可以说是自己全知全能,能看清楚一切发展的方向。而去做了,却没有做好,自己应该反省反省,自己的公司是否在执行力上有了什么问题。

QQ的两个后悔之一,blog不能算是后悔,而且,QQ现在再跟随还是来的急的,就是不知道他们是否有能力把这个做好。在我看来,MSNSpace确实做的很不错,非常友好,方便。如果说自己架设Blog是120相机,其他的BSP提供商提供的是高级单反的话,那么Space提供的就是傻瓜相机了。只有傻瓜相机,才让摄影真正在大众中流行起来。MSN列表上很多朋友前面都有了黄色的小花朵,我经常会去点点。就是查看别人的space的时候,会在微软的passport站点绕一圈,这个时候,速度很慢。

就是不知道,会有多少人会坚持下来?很多朋友的blog上就是那么一两篇文章,一两张照片。


2005年06月28日

今天因为碰到网站恶意用户注册的问题,看了一下注册过程中验证码的资料,学到了一些新东西。

目前在很多网站的注册,发布信息页面,都会有一个称为验证码的图片,你需要正确填入验证码才能提交你的请求。这么做,是为了防止一些自动程序来自动的注册,发帖。因为这些程序发布的都是垃圾,广告信息。不仅增加了系统的负担,太多的垃圾信息还将正常的用户排斥在外。

在国内,针对这种验证码的攻防还不是很激烈,而在国外,却已经是如火如荼了。下面是hotmail注册时需要输入的验证码,看看,不要说机器,就是人也不容易分清楚。

其实正对这种情况,有个专用的名词:CATPCHA:Completely Automated Public Turing Test to Tell Computers and Humans Apart,全自动区分计算机和人类的图灵测试。图灵测试—计算机的先驱人物提出的一个测试—一个屋子里的计算机能和另一个屋子里的人一样回答人类测试者提出的问题,让测试者通过这些回答分辨不出两者中谁是机器。

目前卡内基-梅隆大学计算机科学教授Blum夫妇从事却正好相反:设计计算机无法通过而人可以通过的测试,这就是CATPCHA了。项目的主页就是www.captcha.net。Yahoo!就是在和他们合作。

有矛就有盾,专门破解captcha的人也有,在这里http://sam.zoy.org/pwntcha/,站长列出了一些他个人破解的一些captcha。呵呵,比较夸张,有些已经超出了我的相象,一些看起来很复杂captcha识别率已经很高了。另外,还有一些比较困难的,想hotmail,yahoo的。不过,hotmail的实在是难分清楚,我都不容易,还好,他们自己也意识到这个问题了,在注册页面,你可以只刷新验证码,找到一个容易一点的。

验证码也有一点新动向,hotmail居然可以用声音的方式,点击旁边的按钮,就可以听到比较大的噪声下,有人给你读出验证码,我是没听出来是什么,不过,这对那些色盲或者色弱人士来说是个不错的选择。另外,腾讯更BT,注册码居然是中文的,真正有中国特色。

针对我们的系统来说,单独的一套注册验证码体系是容易被人攻破,对于计算机程序来说,并不需要100%的成功率,只要达到10%的识别率,再加上全自动的程序高速运转,就可以注册很多垃圾用户名。

如果要防止验证码被攻破,需要多个手段同时出击,尽量降低自动程序的成功率

1,验证码系统经常更换,尽量采用独特字体或者手写字体。

2,采用汉字形式的验证码。

3,同时采用多套验证码体系,同时采用多种字体,随机使用,这样这样可以大大减少破解概率。

在服务器端验证中,每个验证码每使用一次就失效。当使用多套验证码体系时,自动程序收到验证码,不知道该采用何种破解方式,只能随机采取一种,然后再将破解出来的验证码,提交到服务器端进行测试。当返回失败信息,这个验证码已经失效,自动程序再尝试对这个验证码图案破解已经毫无意义,面对验证失败信息,自动程序不知道是破解方式不对,还是破解方式正确,系统的失败率造成的,这样就不能从中找出规律性的东西,必然大大降低破解概率

4,在服务器端进行动态IP限制,限制策略可多样化,例如:每小时每个IP只能注册若干用户,针对一些利用IP段来注册的情况,可以限制此IP段注册的速度。

下面是几个不错的链接:
Captcha:矛與盾的戰爭
http://william.cswiz.org/blog/archives/2005-03-18/captcha/

这位兄弟破解了很多的验证码
http://sam.zoy.org/pwntcha/

Breaking a Visual CAPTCHA
http://www.cs.berkeley.edu/~mori/gimpy/gimpy.html

Using AI to beat CAPTCHA and post comment spam
http://www.brains-n-brawn.com/default.aspx?vDir=aicaptcha

以理论的角度论对抗群发软件,兼论OCR
http://bbs.dvbbs.net/dispbbs.asp?boardID=8&ID=968567

对付论坛群发软件的方法(050614最后更新)!!
http://bbs.dvbbs.net/dispbbs.asp?BoardID=8&ID=956875&replyID=1338064&skin=1

全文完·非狐外传@2005年6月28日

2005年06月26日

最近比较烦躁,干事情都不能专心,不知不觉一个周过去了,回头一看,什么事情都没有做,时间全部都浪费了。感觉自己可能需要加强对时间的管理。想起自己常看的blog上都在推荐GTD(Getting Things Done),所以花几天的时间了解了一下。就自己目前的理解,将自己的需要作的事情收集,整理,分类,然后在合适的时间和地点执行,然后再回顾总结。如此循环,养成良好的习惯。GTD只是一个总则,用户可以根据这些总则寻找到合适自己的事件安排方法。


以下是我收集的一些非常好的GTD的资料:


最主要的:
时间管理 (Getting Things Done)[by gasolin]介绍,
http://www.hi-pda.com/forum/viewthread.php?tid=144287&highlight=&page=1
(很经典的一篇,gasolin整理的,我觉得算是GTD中文的开山之作,只要是PDA,网上的提到GTD,都会提到这篇文章的)


Getting Things Done书籍下载:(PDF, txt版本的)
http://www.hi-pda.com/forum/viewthread.php?tid=168098&highlight=&page=1


GTD — PDA继续存在的意义,
http://digi.pchome.net/cool/2005/2/12/6_12144.php
(非常详细,符合国情,入门最好,一共四篇,版主都合并在这里了。)


新手?现在就和我开始Getting things done。。。
http://www.tompda.com/bbs/display.asp?luntan=1&forumid=1692463
(非常详细,符合国情,入门最好,一共四篇,都有链接,其中第四篇除了介绍外,还有一些原则性的总结)


以下是一些辅助性的资料:
我的关于GTD应用的Outline(欢迎大家拍砖)
http://www.tompda.com/bbs/display.asp?forumID=1928517&luntan=1&CurPageNo=1
(后面的帖子讨论的很深入,非常值得看)


进阶 Getting Things Done (又是gasolin所作)
http://www.tompda.com/bbs/display.asp?forumID=1612334&luntan=1&CurPageNo=1


关于GTD的软件:
实行GTD,最简单的只需要一张纸,一支笔就可以了,而我这个技术至上论者还是想找到合适的软件。
在Palm上有很多,毕竟他是PDA的鼻祖了,还有PPC上的,这些都可以在pda相关的网站上找到。因为目前还没有PDA,而除了移动外,我都在使用笔记本,所以目前对我来说,需要运行在PC上的GTD的软件,经过几轮的挑选、试用,最后选定了ListPro,它被誉为“PPC离开了LISTPRO就没了意义”。


找到一些listpro使用的文章:
ListPro使用方法在帖子:
http://www.hi-pda.com/forum/viewthread.php?tid=137562
(其中第三贴:状态显示/隐藏功能就可以用来管理待做/已做事宜)


秀外慧中,listPro 4.0给我新感觉
http://www.hi-pda.com/forum/viewthread.php?tid=163172
(主要是桌面版本的使用)



好了,可以开展自己的GTD之旅了,等有了一定的实践经验和心得,再续写吧。


全文完·非狐外传 2005年6月26日

2005年06月24日

google maps真是个好东西,好东西,让我玩到半夜。大城市都好说,就是小地方也没有精确的坐标,只有通过非常明显的地面标志物来定位了。

先定位到武汉,然后顺这长江找,一边对比着湖北省地图,然后又对比赤壁市地图。多亏长江在这里拐了一个很大的湾,多亏这里有个明显的陆水湖。

看着地图,真的怀念小时候的时光,那时放了学就往山上跑,夏天大人最担心的事情就是我们跑到湖里面去游泳。还有人有兴趣在google上找到自己长大的地方吗?可以标出来,大家一起共享啊。

全文完·非狐外传@2005年6月24日

实在忍不住要在blog上记一笔了。

2005年06月22日

虽然有了网摘,可以有些重要的东西,还是要另存到本地才好,一般使用的是浏览器的另存为功能,这样保存下来的不要的东西太多,要么选中需要保存的内容,然后Ctrl+C,这样保存下来的是文本,会丢掉一些格式,尤其是表格里的内容。

javascript中就有对windows的剪贴板操作的函数,可以利用。

首先打开文本编辑器,在里面输入:

[InternetShortcut]
URL=javascript:c = "" + (window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().htmlText); window.clipboardData.setData(‘text’,c); void 0


然后存成cc.url。这个文件应该存放在你的收藏夹目录的链接里,一般是:C:\Documents and Settings\用户名\Favorites\链接\。

然后重启IE,或者maxthon,选中菜单中的“查看”-》“工具栏”-》“链接”(maxthon里是收藏栏),就可以看见我们创建的url的图标。在浏览器中选中需要保存的内容,然后点击这个图标。接着Ctrl+V到任一编辑器中,可以看到,粘贴过来的内容是带有html标记的。

2005年06月20日

白天在xici上看到采访定州事件的记者的采访手札,还有tianya上的南方周末被毙的两篇安宁水灾的稿子。晚上回家想给LD看看,结果打开保存的连接,已经是“页面错误,你访问的页面不存在”,再通过离线察看,也没有了。google,baidu也没有结果。很不舒服,很不舒服,只怪自己当时没有保存到本地,不知道那位还有,能否Email给我。

全文完 非狐外传@2005年6月20日

2005年06月18日

换台经过,正好是轻舞飞扬向小雯介绍:“这位是痞子。”当时我的脑子就短路了,这是什么啊?等反映过来的时候,忍不住爆笑,这个编剧也够强的了。笑过之后,立即就换台了。现在已经不是当时追著看《第一次亲密接触》的感觉了,不是到是人老了,还是现在网络给了大家太多的亲密接触。

完·非狐外传@2005年6月18日

2005年06月14日

以前在PHP的环境下,使用RSA非对称加密算法的话,需要自己来用C写PHP的扩展,运行环境还需要安装openssl,因为使用了其中的RSA的lib。

今天在pear.php.net上,发现package的Crypt_RSA 1.0.0稳定版已经在2005/05/11发布了。可以实现生成32~2048位的公密钥,还有签名,验证签名,加密,解密的接口。Crypt_RSA完全是用PHP来实现了,当然,为了提起效率,你也可以再安装它推荐的几个php扩展。

使用很方便,在已经安装好了pear的机器上,将下载的压缩文件的RSA目录copy到pear/crypt目录就Ok了。在包中有测试程序:web_interface.php使用。

生成公密钥的操作是比较费时的,在一台迅驰的笔记本上,如果选择生成256位的公密钥对,占满了CPU一秒钟,生成512位的,需要权力跑五秒钟。生成1024位的,已经超出了PHP的运行时间限制三十秒。


非狐外传@2005/06/14 全文完

2005年06月13日

有时为了调试一些程序,还是需要在自己使用的个人计算机上安装php的开发环境。每次安装的时候,都需要找找资料,或者看看readme,觉得很麻烦。同时也试用过一些一体的安装软件,总是觉得不合心,要么版本不是最新的,要么修改了一些配置。调试程序的时候,最好还是在原始配置环境下调试,这样可以屏蔽掉因为配置引起的问题。尽管网络上这样的文章已经太多了,在这次安装完后,还是按照自己的习惯总结一下。

我最喜欢的是压缩版本,在有选择的时候,都不会选择exe的执行文件。直接解压压缩文件,可以控制很多配置,也不会在系统的注册表中添加很多的垃圾。

apache,php,zend的安装:


此次安装的是Apache2.0.54,PHP5.0.4,ZendOptimizer2.5.5。

apache2安装没有压缩包,只有exe的执行文件,我一般习惯安装D:\Program Files\Apache Group\Apache2,在安装的时候,不要选择安装成windows的服务,毕竟只是在需要的时候才开启apache。

然后解压php5到任意位置,我一般是D:\php\php5,接着在apche的http.conf中添加:

LoadModule php5_module "D:/php/php5/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "D:/php/php5"


在将php.ini-recommand copy到同目录的php.ini,然后在php.ini段中修改include_path段,修改成

include_path = ".;D:\php\php5\includes"


Zend的安装没有压缩,是exe的,不过安装起来很方便,指定apache,php.ini的位置就可以了。
安装后,会在php.ini中添加:

[Zend]
zend_optimizer.optimization_level=15
zend_extension_ts="D:\Program Files\Apache Group\zend\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="D:\Program Files\Apache Group\zend\lib\Optimizer-2.5.5"



启动程序菜单中选择“Start Apache in Console”就可以启动apache2了。


mysql的安装:


有两个版本选择:mysql4.0.24和mysql4.1.12,其中4.1版本后的对unicode支持非常好,但使用,管理,开发都有了一些改变。为了兼容以前的程序,所以要安装两个。

还是都选择安装压缩包,然后解压到D:\Program Files\mysql\的相应目录下。mysql4.0.24安装在./mysql-4.0.24-win目录,mysql4.1.12安装在.mysql-4.1.12-win32目录。

在./mysql-4.0.24-win目录下,创建一个my.ini文件,内容如下:

[mysqld]
basedir=D:/Program Files/mysql/mysql-4.0.24-win
datadir=D:/Program Files/mysql/mysql-4.0.24-win/data
[WinMySQLadmin]
Server=D:/Program Files/mysql/mysql-4.0.24-win/bin/mysqld-nt.exe
user=root
password=linuxroot


然后是mysql.bat文件:

"D:\Program Files\mysql\mysql-4.0.24-win\bin\mysqld" –defaults-file="D:/Program Files/mysql/mysql-4.0.24-win/my.ini" –console


双击mysql.bat就可以运行mysql4.0.24了。

在./mysql-4.1.12-win32目录下,创建一个my.ini文件,内容如下:

[mysqld]
basedir=D:/Program Files/mysql/mysql-4.1.12-win32
datadir=D:/Program Files/mysql/mysql-4.1.12-win32/data
default-character-set=utf8 
[client]
default-character-set=utf8


然后是mysql.bat文件:

"D:\Program Files\mysql\mysql-4.1.12-win32\bin\mysqld" –defaults-file="D:/Program Files/mysql/mysql-4.1.12-win32/my.ini" –console


双击mysql.bat就可以运行mysql4.1.12了。

非狐外传@2005-06-13 全文结束