Monday, May 23, 2011

博客时代已过,本博关闭

很久没发博,这也是最后一次更新。

本人认为,个人博客时代已经过去了!

即日起,本博将无限期停止更新,将来可能会做跳转。

感谢所有访客朋友曾经的关注!

Saturday, December 18, 2010

什马都是浮云,时光倒流了

VPS所在服务器磁盘故障,Down机了5天后等来的结果是:
数据只能恢复到6,7月份!
还好最近也很少更新Blog。。。

什马都是浮云,备份才是王道啊

Tuesday, July 6, 2010

加固你的ECSHOP,阻止CC攻击

前几天帮朋友的一个站阻挡了DDOS攻击后,他的另一个站又遭受了CC攻击
该站用的是ECSHOP系统,朋友给我截图,底部显示当前在线人数接近3000。待我去访问时,网站已经挂掉,显示:

The table 'ecs_sessions' is full...

汗!查了下数据库,ecs_sessions这个表的记录数居然达10多万条之多,清空该表后刷新网站,已能访问。
但不到一分钟,又变得极慢,再查数据库,该表又有了2万多条数据。

ecs_sessions表是ECSHOP用来记录当前在线用户的,每次有新的用户访问,都会将session信息写入该表。这无疑给CC攻击提供了机会,攻击者只要伪造大量用户请求,很快即可使该表爆掉。

查了一分多钟内的数据,约有40多IP在同时发起攻击,每IP的用户数在几百不等。
上次DDOS攻击的IP对比了下,有不少重复的肉鸡,应该是同一(伙)人所为。

在服务器上(利用.htaccess)将这些IP加入黑名单后,虽然攻击力度有所减弱,但ecs_sessions表的数据还是增长迅速,又有新的肉鸡加入,网站访问越来越慢,迟早还会挂。

这样手动去加黑名单总不是办法,写了个脚本检测攻击和加入黑名单,问题终于搞定!
分享出来,希望对相同遭遇的朋友有所帮助:

Thursday, July 1, 2010

港澳通行证的网上续签手续(包括深户和非深户)

港澳通行证的两次签注很早就用完了. 跟了我几年的E2频频出问题, 打算再赴港入手一台Android, 于是又办了两次续签. 老婆是深户, 我还是长沙户口, 办下来都还比较顺利, 记录一下, 以备后来者参考:

Tuesday, June 29, 2010

走走歪路,利用GFW来防DDOS攻击

一朋友的香港空间昨天挂了,起初是数据库连接出错,后来干脆不能访问了,出现Service Unavailable。

询问空间商,说是:

這個域名是由於有太多的連接連到這域名,已超出這個域名的連線上限,所以才會出現無法顯示或連不到數據庫。這個域名的網站連線限制是 500。

我查了站长统计,发现IP和PV数和以前皆无甚出入。

找空间商要了近两日的空间访问日志,发现前天的日志文件只有22M左右,而昨天的日志(未满24小时)竟达169M,相差甚大。

分析了昨天的日志,发现有500多个不同IP共100多万次访问都是针对 /xxx.asp ,这个页面是产品的详情页面, 而正常情况下,用户是不可能访问到这个页面的,而只能通过其他页面的链接访问到/xxx.asp?id=xxx(必须带ID)。

而恰恰朋友用的这套程序居然没对这种不带ID的情况做处理,直接让数据库查询失败而出错。这样的错误达到一定量必然引起数据库挂掉,后来我修复这个错误后,但随着攻击力度的加大,突破了IIS分配给空间连接数的上限,还是彻底挂掉了。

从技术上分析,这应该算是DDOS攻击,近年常有发生,一些大型网站都屡屡遭殃,这小小的虚拟空间又如何禁受得起?!

今日空间商帮忙更换了IP,我也是灵机一动,想到一个绝妙的办法,竟然可以利用GFW来防御DDOS :

Wednesday, May 19, 2010

IE对refresh这个meta的解析是有Bug的

今天和同事发现一个诡异的问题, 系统邮件发出后, 在Gmail中点击邮件中的链接时,部分链接在IE7/IE8下不能正常访问(IE6正常).
具体为: 不能打开含有分号(;)的链接, 从gmail中点开后分号及以后的内容丢失, 从而出现找不到页面.

初步测试, 发现Gmail在打开链接时, 会由js修改click事件, 将目标链接改为gmail自己的一个中间页, 再在该页做跳转(可能google利用这过程做了一些统计工作吧)
当目标链接地址含有分号(;)时, IE7/8都不能正常跳转, 而其他浏览器却是正常的.

起初以为这是Gmail的Bug, 怀疑google对目标链接用js做了些编码转换,而不同浏览器对这个编码转换支持有差异.

我抓取了跳转页的内容, 其实就一行标准的refresh代码:

Wednesday, April 21, 2010

putty不用密码登入

1. 打开PUTTYGEN.exe 生成公私密钥。
2. 保存private key在本机(一个.ppk文件),注意此处不要填passprase,我们的目的本就是不想输密码。
3. 复制public key内容,粘贴到服务器你的用户目录下的 .ssh/authorized_keys,没有该文件的话请自行创建。
4. chmod 600 .ssh/authorized_keys
chmod g-w .ssh .ssh/authorized_keys 不改权限可能登不了。
5. 在putty中导入私钥。
相关截图: