每次访问不了tracert都是到国内的骨干断掉。
今天搜索相关信息的时候,看到一个帖子说这个事情,作者tracert分析得出被GFW的结论,结果有“独立思考之理性的”人义正言辞的跳出来回复说他最讨厌这种听风就是雨的说法,说为什么不可能是google自己的不稳定,什么事都要往GFW上想。那么我也“不理性”的说,我最讨厌这种“理性”的颠倒是非黑白的人,我不知道他是怎么想的。
posted @
2009-05-17 11:21 luoluo 阅读(1693) |
评论 (12) |
编辑
最近Planet上关于这个话题有了很多的探讨,关于解决方案,我和刺茄子云舒Kevin他们在群里都有过讨论,这两天又对apache的处理机制进行了简单的分析,到现在思路也渐渐的清晰了。
解决方式有三种,一是WEB服务器端解决,二是客户端解决,三是在中间层解决。
1、WEB服务器端解决以Apache为例,首先会想到rewrite或者apache module或者,但是测试会发现rewrite和普通的dso module都不行,因为apache在这之前就错误返回了;于是乎查资料找更早的介入方式,发现ap_hook技术可以在很多环节插入代码, 还有apache input filter也是能在较早的地方进行输入过滤,但是都失败了;最后翻代码分析发现Apache处理头之后如果有错误的话是直接返回的,所以除了修改Apache源代码,在Apache层面是没法解决的。
2、客户端解决,也比较容易想到定制400错误页面,里面写JS来清COOKIE,但是问题同上定制的页面内容也是无法返回到客户端的。还有就是客户端软件了,对于网站来说,没有这种能力。
3、云舒提到Iptables之类的介于客户端和服务器端之间的七层过滤的东东,没有测过。Kevin提出用Squid的方式也可以归入这一类,我也没有侧过,但是Squid基本也可以看做是个Web服务器。
本来Web服务器设置这个限制是防止对Web服务器的DOS的,结果反而导致了对客户端DOS的可能,说到底就是一个单选题,选择Server容易被DOS还是Client容易被DOS,那么Apache选择了前者。Kevin说这根本上是浏览器的问题,因为浏览器没有遵守相关标准中关于Cookie大小的限制。的确,理想的状态就是服务器端和客户端在最大的请求头上达成一致,但是目前来看如果没有造成较大的危害的话,无论是浏览器方面还是WEB服务器方面都不会轻易调整。
所以总的来说,这个问题是个难题,预计最终的解决将会由它所造成的危害推动。
posted @
2009-04-25 01:01 luoluo 阅读(1298) |
评论 (0) |
编辑
什么是匿名透明递归,就是递归调用的时候不需要知道函数名,也不需要理解参数。用到的知识点:
1、arguments对象的callee属性,取得当前函数对象,实现函数匿名引用
2、Function对象的apply方法,调用一个方法,并传入this指针和arguments对象,这样就实现参数透明传递
<script type="text/javascript">
<!--
(function(s, n, o) {
alert(n);
if (n < 5) {
n ++;
arguments.callee.apply(this, arguments);
}
})("test", 0, {a : 1});
//-->
</script>
posted @
2009-04-20 23:35 luoluo 阅读(1655) |
评论 (6) |
编辑
这个冬天一宅就是5个月,身体状态基本和没骑过车差不多了,清明假期在连续宅了两天后我决定用自虐的方式来唤醒慵懒的身体。无奈在离妙峰山脚下还有十几公里的模式口,仅仅50公里的平路,就让我的大腿开始抽筋了,这是个危险的信号,给愉快的旅程蒙上了一层阴影。还好我心态比较平和,及时调整了预期,本着尽力的原则,不行就撤。凭着对登顶的强烈渴望,在中途休息了无数次并吃了顿中午饭后成功到达山顶牌楼,后来咬牙坚持回到家,全程大约187公里。北京业余自行车运动水平很高,妙峰山连续21公里爬坡很多牛人1个小时内就登顶了,很难想象那种速度,以我去年秋天的最佳状态时估计也要1个半小时。长期不骑车虽然肌肉机能回到解放前,但是心肺功能一点问题也没有,而且意志力还在,这对于爬长坡最为重要。





posted @
2009-04-07 04:09 luoluo 阅读(1451) |
评论 (6) |
编辑
这次杭州之行朋友没有少见,酒没少喝,肉也没少吃,游戏没有少打,真是快意人生。
而北京呢,朋友不少,但是苦于城市太大了,聚一次太难,不像杭州下班就可以直接去搞,sigh!
posted @
2009-04-03 17:58 luoluo 阅读(1998) |
评论 (6) |
编辑
通过Script Editor脚本调试观察到的一些特性,不分先后胡乱列一通:
1、跨域可以读取属性名/全局变量名
2、属性的粒度是到读写的,比如location对象的属性,可以跨域写,但是不可以跨域读
3、操作符也是有权限控制的,比如location对象可以使用操作符!=、==,但是没有办法使用=
4、null和undefined状态是可读的
5、length是可读的
6、权限限制错误有两种提示,一是“拒绝访问”,一是“没有权限”;我猜测“拒绝访问”是没有读写权限,“没有权限”是仅有读或者写权限
7、 window.frames[i]取得的是frame的contentWindow对象,document.getElementsByTagName("iframe")[i]取得是iframe元素对象,所以后者需要使用.contentWindow来获取frame的window对象
可能以上某一个单独的特性并不能获取多少信息,但是组合起来有可能获取更多的有用信息:)
posted @
2009-03-31 13:19 luoluo 阅读(1575) |
评论 (4) |
编辑
用ms系列脚本调试器有个很方便的特性就是debugger关键字,它可以在代码中写入断点激活调试器,类似于汇编中的int 3,今天突然发现firebug也支持了,这样就更方便了。
firebug:

microsoft script editor:
posted @
2009-03-17 15:15 luoluo 阅读(1624) |
评论 (0) |
编辑
网上很多文档提到一个JS利用DOM特性作HTMLDecode的方法:
function HTMLDecode(strEncodeHTML)
{
var div = document.createElement('div');
div.innerHTML = strEncodeHTML;
return div.innerText;
}
这个函数是不安全的,如果参数带有用户输入,就可能导致执行JS代码:
function HTMLDecode(strEncodeHTML)
{
var div = document.createElement('div');
div.innerHTML = strEncodeHTML;
return div.innerText;
}
HTMLDecode("<img src=1 onerror=alert(1) />");
有人很傻很天真的以为,这个没有被appendChild到dom树的元素,应该不会执行。
posted @
2009-03-17 11:41 luoluo 阅读(1476) |
评论 (1) |
编辑