文本内容:
XSS等web安全漏洞的防范电脑资料近在ode社区,由@吴中骅的一篇关于XSS的文章,直接导致了社区的人开始在ode尝试各种攻击,之前nodeclub在上传图片的时候逻辑是这样的这个漏洞相对来说非常的低级,但是后果却是最严重的,直接导致整个系统都可能被用户控制修复的方法也很简单关于XSS,在@吴中骅的文章中已经非常详细的描述了而ode社区中,用户发表话题和回复话题也是用的一个支持markdown格式的富文本器之前是没有做过任何XSS防范措施的,于是...你可以直接在里面写而markdown格式的内容也没有做URL有效性检测,于是各种样式的XS S又出来了在社区这个应用场景下,引入HTML标签只是为了进行一些排版的操作,而其他的样式定义等等都只会让整个界面一团糟,更别说还有潜在的XSS漏洞风险因此,其实我们是不需要支持用户输入HTML标签来进行内容排版的,一切都可以通过markdown来代替然后通过简单粗暴的HTML escape,就可以消灭掉直接输入HTML导致的XSS风险因为XSS的手段确实比较多,见XSS FilterEvasion CheatSheet因此能够做粗暴的HTML escape是最安全的,但是并不是每一个地方都可以通过markdown来代替HTML代码,所以不是每一个地方都能用HTML escape,这个时候就需要其他的手段来过滤XSS漏洞了现有的XSS过滤模块,一个是node-validator,一个是@雷宗民写的js-xss不能够保证XSS模块可以防范住任意的XSS攻击,但是起码能够过滤掉大部分能够想象到的漏洞node-validator的XSS仍然有bug,对于上面两条语句,第一句由于使用的是单引号,用户可以通过构造一个avatar_url中带单引号,来截断src属性,后面就可以随意加java script代码了CSRF攻击在node的web开发框架connect和express等中都有了解决方方案通过在访客的session中存放一个随机的_csrf字段,模版引擎在生成HTML文件的时候将这个_csrf值传递到前端,访客提交的任意POST请求,都必须带上这个字段进行验证,保证了只有当前用户在当前页面上可以进行修改的操作然而当页面存在XSS漏...。