最近研究了文件上传的安全性,其中有一个问题就是关于图片的,所以需要了解下PNG以及图片攻击方式。
百度百科了解下 PNG的常识问题。
http://baike.baidu.com/link?url=qbB1dFNa0U4tH1WtUXPrZ2nbAzI4uyEJJEBN6TYmr359BHZY0OPr1ImqBf_CsWITkyKIs_s65ge6V7mx-50u0q
复制下面的一段PNG文件格式以便快速了解和查看:
PNG文件格式中的数据块 | ||||
数据块符号 | 数据块名称 | 多数据块 | 可选否 | 位置限制 |
IHDR | 文件头数据块 | 否 | 否 | 第一块 |
PLTE | 调色板数据块 | 否 | 是 | 在IDAT之前 |
IDAT | 图像数据块 | 是 | 否 | 与其他IDAT连续 |
IEND | 图像结束数据 | 否 | 否 | 最后一个数据块 |
在PNG文件的IEND后面就表示该文件已经结束了,如果在后面添加可执行代码的话不会影响图片本身的显示;在特定的环境下可以触发该代码的执行,那就可以引起安全问题了。