SQL注入作为近些年来owasp top10前几的常客,对于web安全的威胁不言而喻,本文将简要介绍sql注入的原理机制,希望对于各位进行web开发时有所帮助。
一、客户端、web服务器和数据库服务器之间的关系
要理解sql注入的原理,那么就先要了解客户端、服务器和数据库服务器之间的工作机制(大致如下图)。
注:此图为客户端、web服务器和数据库服务器之间的逻辑关系,不代表它们的物理关系就是如此
二、sql注入条件
从上图可知,客户端发送请求到web服务器后,web服务器会自主生成一段sql语句用于作用在数据库服务器上进行查询等操作。那么假如客户端发送的请求之中是一段所谓的恶意sql代码,并且web服务器收到后,并没有做出过滤等特殊处理,直接把客户端发来的请求数据包中的内容转化成一段sql语句,然后发送给数据库服务器,数据库服务器根据web服务器发来的sql语句,也没有做特殊处理,直接执行并把执行结果反馈给web服务器,web服务器收到数据课服务器反馈的内容后,没有做过滤,直接生成web界面反馈给客户端,那么客户端就可以查询到一些数据库里的一些不应该被非管理员看到或者操作的东西。
以上的假设,就是一个sql注入,从标黑的几处地方可以看出&