| 关键词: 数据 问题 直接 代码 上面 数据库 时代 安全 大风 WEB |
在webzine 0x03有一篇大风写的paper《WEB应用安全设计思想》里有这样一节: “数据与代码分离的思想是安全设计的原则” 我这里要说的,你在遵循这条原则的同时,不要忘记了"数据库本身的解析问题",在2004年的时候我和lilo哥发表的一篇文章:《改mdb为asp所带来的灾难》这个其实也说明了数据(库)本身的解析带来的安全问题,数据库改名后当作asp解析了,那么我们可以直接插入asp代码来执行......,同样在web程序使用文本数据库的时代[如数据用php后缀保存],也可能导致直接执行代码。 上面提到的基本上是web 1.0时代的一些问题,那么在现在web 2.0的时代主要有哪些体现呢?在上面提到的大风的文章里: "在应用中,比较好的例子是json、XSLT,这些方法都比较好的做到了数据与代码分离,所以在开发中多使用这些比较好的方法,无形中就提高了安全性" 数据类型主要体现在json和xml等上面,如果忘记这些类型数据本身的解析问题,那么就可能导致严重的安全漏洞。事实上也是如此,目前还有很多著名的sns网络应用都没有注意这个问题,比如直接访问json文件,返回Content-Type: text/html,而数据又没有被编码,数据直接被浏览器解析导致xss漏洞。 具体的一个demo[见下图]: 那么解决这个问题的方案有2点: 1. 严格控制数据文件,返回的Content-Type。 2. 数据存储时,使用编码。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|