新浪微博 XSS 攻击防范分析,兼谈 CSRF

@玄了个澄的:看了一下代码,我的感觉是反射式XSS是核心,通过代码注入实现了get fans/follow/message/publish等一系列操作。私信从外站短链接过一道可能是为了掩人耳目(防止sina发现链接中的script内容),而CSRF漏洞确实简化了攻击复杂性,但不是这个案例的重点

QLeelulu 其实,我们每个人都写过这样的代码,就是url中的参数忘记进行HTML编码直接输出了。Django的默认模板系统在这方面做得就挺好了,它默认就是进行HTML编码的。这个其实不算CSRF了,因为它发送的请求可以取得页面上所有的信息,CSRF防范根本没用。

玄了个澄的 原则是程序中(包括数据库)处理字符串本身,转义在view层或api输出口上做。因为是否转义以及如何转义取决于内容被使用的场景

QLeelulu 回复@玄了个澄的:外部的输入肯定都是不可信的,必须进行编码的,呵呵

玄了个澄的 回复@QLeelulu:这是句老话,口口相传确实对避免风险有所帮助,但未免简单化了,还不足以表达本质。更好的说法是:对输入无需控制,在使用于格式化文本(如regex、url、sql、html)中时根据场景进行转义

# 来源:http://weibo.com/1644902943/l4EVmraEz

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。