加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

这样的“黑客”是否违法?

(2007-05-08 11:09:48)
标签:

黑客

数据结构

数据库

分类: 信息安全
 

  嗯,现在我很缺钱,非常非常缺钱。
  我发现一个问题:国内八成以上中等规模(alexa排名一千到一万之间的)web2.0网站因为数据结构缺陷,即使低带宽的一些特定浏览也能使服务器总线带宽被占满,从而服务器爆掉。
  如果我检查这些网站,指出缺陷在哪儿(甚至给出能让服务器爆掉的访问脚本),能让他们付费请我帮忙改数据结构设计么?
  我使用软件,在访问的时候记录下访问到的文件及读写过程,看哪些应该在哪儿做的事情结果在另外的地方做了,并记录响应时间,分析可能存在的问题,并编写成组浏览(完全正常的前台访问)的脚本,验证问题是否存在,如果问题存在,就把存在问题及验证用脚本发给他们,问他们是否需要数据结构设计服务。
  这样的事,违法么?
  其实发行网页对服务器来说就是一个数据生产过程,总线带宽占用远超接口带宽(包括网络连接带宽)是正常的,但是不能超过倍数太多了,而不当的数据结构设计,就会造成某些访问倍数差太大,服务器爆掉。
  web2.0网站,由于经验比较浅,而且做事图快图省事,很多地方问题一堆一堆的,数据结构就是比较大的问题(好些这类网站就是图快,认为大不了快点融到钱加服务器就是了,加服务器能解决一根ADSL就能爆掉共享百兆服务器的问题吗?)
  举好友关系为例来说,排名一千到一万之间的很多web2.0网站用户数在百万量级(虽然很多是买的会员数据),好友关系表,居然是一个关系一条记录,而且每次都直接操作数据表,如果百万会员每人平均上百好友(很多也是程序做的,为了看上去人气旺盛)的话,就是上亿条记录!当用户浏览某个会员的好友圈时,服务器的开销多大?

  正确做法:
  字段:用户ID,存放用户ID
  字段:好友ID列表,存放我的好友ID列表,用逗号分隔ID列表,数据类型为文本。
  字段:已加我为好友的ID列表,存放好友名单上有我的ID列表(因为我可能通讯录满而删除一些人),用逗号分隔ID列表,数据类型为文本。
  字段:黑名单,被我阻止的ID,其中发来添加请求而被我拒绝的也在此,我将不能收到该用户继续发来的添加请求。
  字段:等待我批准的添加请求,存放别人发来的添加请求,用逗号分隔ID列表,数据类型为文本。
  字段:我发出的待审批添加请求,存放我发出的添加请求,用逗号分隔ID列表,数据类型为文本。
  其中最后两项另外保存在一个消息池里,消息池的表(XML格式)为:
  字段:消息创建时间。
  字段:发起人ID。
  字段:添加对象ID。
  字段:操作结果(通过,拒绝,挂起,通过或拒绝的,该消息被关闭,挂起的,消息下次还可以被操作)。
  当某个前台页面被第一次访问,数据挂接(文本数据被加载为数组,套用模板生成页面)时,生成页面在缓存文件夹里,下次就从这个文件夹读取,当数据有更新或页面活跃度低于某限定值时,页面被释放。

  这样的做法,代码量当然比前面说的一个关系一条记录要大很多,但是,这是能让网站稳定运转的数据结构,有时我看到一些垃圾的数据结构设计,真想问问:现在的计算机课已经不教数据结构设计了么?

  今天我在QQ群里问这样的“黑客”行为是否违法,有人说我应该加上漏洞检测就好了,还真以为我想当黑客呢?当这样的“黑客”,工作要避开网站繁忙时段,只能在深夜或凌晨工作,横横,就算人家是恐龙,如果不能好好睡觉,那不是更恐龙了么?嗯,其实我是不会当这样的“黑客”的了,不过感兴趣的兄弟姐妹们可以试试啊。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有