这篇文章是写个其他圈子的同学看的,有感于这些天的一些发现,大家感兴趣可以看我之前的文章。
我以前并没如此强大的感受,但我现在意识到一点:安全一般情况下看不见,在你周围漂浮着,显现出来后,往往会刻骨铭心……
正因为安全看不见,所以往往不受重视,因为感知到的概率真的太低,用户的第一感知是他看得见、摸得着、嗅得到、品得出的东西,实实在在的东西,而不是那种虚无缥缈的东西,我们对概率低的东西往往默认选择忽略。
这篇文章是写个其他圈子的同学看的,有感于这些天的一些发现,大家感兴趣可以看我之前的文章。
我以前并没如此强大的感受,但我现在意识到一点:安全一般情况下看不见,在你周围漂浮着,显现出来后,往往会刻骨铭心……
正因为安全看不见,所以往往不受重视,因为感知到的概率真的太低,用户的第一感知是他看得见、摸得着、嗅得到、品得出的东西,实实在在的东西,而不是那种虚无缥缈的东西,我们对概率低的东西往往默认选择忽略。
上篇文章(http://evilcos.me/?p=251)提到了跨子域安全问题,这已经是一些互联网大公司的宿命?我真想知道是哪位前端工程师或架构师将这种为了便利而滥用跨子域技巧的思想带到本该分离的业务里?这样埋下的种子总有一天会变成雷。这个技巧最常见的有两种模式:
1. 人人网那样,几乎所有子域都嵌入一段通用脚本,设置document.domain=”renren.com”;
2. 大多数网站(腾讯、百度、新浪等等)的做法:子域的某路径下有个ajaxproxy.htm或proxy.html等类似文件名的文件,里面的代码是:
昨天sogl微博@了我一个问题:
#Web前端黑客#p342 子域无法通过单向设置document.domain跨到主域,书中写的新浪微博可以通过子业务跨到顶级域名下,事实上不可以。
大家可以看我放在GitHub上的demo:https://github.com/web2hack/proxy:
1、设置hosts:
127.0.0.1 evil.com
127.0.0.1 a.evil.com
2、将proxy目录放到本地Web服务根目录下。
3. 访问http://a.evil.com/proxy/attack.htm原理:
双方页面都设置:document.domain=’evil.com’;在浏览器下,可跨子域。