文章预览
文章前言 近期在对公司协同源代码进行审计的过程中发现一个很奇怪的点就是很多研发人员认为对于JDBC类的SQL语句防注入只需要使用PreparedStatement即可实现对SQL注入的有效防御,而不管被带入PreparedStatement的SQL语句之前是否有过拼接,这一点使得我PreparedStatement对SQL语句处理过程产生了好奇心以及对JDBC类SQL注入有效防御方法探索验证的冲动 注入简介 SQL(Structured Query Language)是具有数据操纵和数据定义等多种功能的数据库语言,当我们在与动态网站进行交互(例如:点击、搜索、登录等)的过程中其实后端都有涉及到与之相对应的增删改查操作(INSERT、DELETE、UPDATE、SELECT),而由于数据的增删改查操作都少不了对操作数据对象的检索且查询条件大多数情况下用户都可以掌控(除去少数初始化或者写死的SQL等特殊场景外),故而当用户可以直接控制SQL语句时便
………………………………