一、前言
本文为自己对SQL注入这个攻击手法的理解,跟大家一起分享SQL注入知识。
分上下篇,上篇为攻击手法概括,初稿不会写太多,后面会更新;下篇为防御篇,会把一些常见的,不常见的写进去。
二、概念
SQL注入漏洞之所以会出现就是开发人员针对代码编写开发web应用程序过程中,未对使用者输入的可控参数的合法性进行有效判断和过滤。从而造成被别有用心之人,利用“参数可控”特性将恶意参数带入数据库中执行,造成了恶意的SQL语句对数据库执行行为。
归结出两个条件,引起SQL注入:
1.传入参数可控,使用者可以对传入数据库的参数变量进行操作。
2.应用过滤不当,前端或者web应用、框架等未对使用者做好隐藏执行语句和传入参数的严格过滤。
SQL注入的关联性
其实“注入”这个行为,也是一种对数据库的操作。这个行为的对敏感信息造成泄漏,所以判定成恶意的“注入”,实际上与用户的普通操作别无二致,在开发过程中,应该对用户的“操作”进行过滤和规范,尽量减少SQL注入的出现。
SQL注入的注入点与脚本语言关系不大