不要忘记数据本身的解析
不要忘记数据本身的解析在webzine 0x03有一篇大风写的易做图《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. 数据存储时,使用编码。
补充:综合编程 , 安全编程 ,