纷繁复杂的计算机世界说到底还是为人服务,并最终由人来操纵。如果以“原子”般的视角来观察人对计算机的操纵方式,展现出来的无非是两个方面——数据,以及操作这些数据的指令。当数据和指令都是事先预设好的,各司其职,则天下太平——人们通过指令将输入的数据进行处理,获得期望的结果后通过特定的渠道输出。但随着IT技术的飞速发展,“计算机”的形态多种多样(大型服务器、PC机、智能终端等等,以及运行其上的形形色色的应用),不同角色的人在计算机系统中所扮演的角色各异(开发者、维护者、高级用户、普通用户、管理者等等)。这些场景中,数据甚至指令通常都无法事先固化,需要在运行的过程中动态输入。如果这两者混杂在一块,没有经过良好的组织,就会被黑客加以利用,成为一种典型的攻击方式——命令注入。命令注入攻击的常见模式为:仅仅需要输入数据的场合,却伴随着数据同时输入了恶意代码,而装载数据的系统对此并未设计良好的过滤过程,导致恶意代码也一并执行,最终导致信息泄露或者正常数据的破坏。其中最常见的一类攻击行为就是针对数据库系统的SQL(结构化查询语言)注入。