干燥时间 发表于 2009-4-3 11:17:15

建议2010版加入两个功能

一.仿照搜索引擎的智能爬行,获取加密的主题列表地址,以采集那些有分页加密的网站。


二.加入验证码**功能。附录:验证码**的一些思路。


验证码实现验证的原理:后台产生一个随机数,存放于服务器session,然后生成一个图片丢给客户端,同时给客户端一个sessionID。客户端输入一个验证码,提交到服务器的验证脚本,脚本根据sessionID去取session,跟提交上来的验证码比较,就可以验证用户权限。
对于用GD库生成图片的验证码**,分3种情况:
1.如果程序不是在每次验证之后产生新的验证码的话,hacker就可以不断提交验证码去碰
2.如果服务器每次都更换新的验证码,可以在本地提供一个固定数字,不断向服务器提交验证请求,直到跟本地验证码一致,概率应该是一样的,只不过把产生随机数的过程交给了服务器,这样本地压力更小。
对上面两种验证码,4位的数字,最多只需要10×10×10×10=10000次就可以得到正确结果,10000次对于机器来说太快了,这10000次验证所需的流量不到1k,所以只要服务器宽带不会超级卡,那么就可以迅速**(当然,这么段时间内提出这么多请求,服务器会死机)。
3.如果是每次验证后都产生新的验证码,那么仍然可以暴力**,只是这个暴力次数由1万次增长到3万次(根据概率统计原理,某次猜不中为0.9999 9999次内不中的机会为0.9999^9999=0.36789783622 要达到0.95的概率需要大约29999次),这么段时间内提出这么多请求,服务器会死机
对于用TTS生成声音的验证码,分2种情况:
1.在服务器端用TTS朗读插件生成midi,丢给客户端,比较难**;目前微软和新浪注册ID时用的就是语音验证码。
2.把验证码和TTS朗读插件丢给客户端生成midi,验证码直接泄漏,形同虚设

rq204 发表于 2009-4-3 13:15:57

这个不是软件的开发方向,谢谢您的建议。
页: [1]
查看完整版本: 建议2010版加入两个功能