HOME AUTHORS

注入攻击

2022年3月24日 20:06
ali
Tags ali sql 输入框

注入攻击介绍

注入攻击是攻击者使用恶意代码注入或感染web程序以达到检索个人信息或破坏系统的目的。攻击者诱使系统认为该命令是正常发起的,系统就会盲目的执行这些命令

注入攻击的类型

SQL注入

SQL注入是一种代码注入技术,用于攻击数据驱动的应用程序。在应用程序中,如果没有做恰当的过滤,则可能会使恶意的sql语句被插到输入字段执行

mysql的注释符有#,--(后面有空格),/**/这3种

动态拼接sql的方式:

例如:后端判断登录的sql是"select count(*) from user where username="+usernameInput.text+" "+ "and password="+passwordInput.text

在数据库中有username为ali,password为123456的用户

前端用户名输入框输入ali--,密码输入框随便输入内容,那么是能登录成功的,因为ali之后的语句都被注释掉了

前端用户名输入框输入ali;drop table user--,密码输入框随便输入内容,那么不止能登录成功,还会把数据库user表内容删除掉,十分危险

如何防止sql注入

  1. 要对用户的输入进行校验,通过正则表达式或限制长度等方式

  2. 不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据存取

  3. 不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接

  4. 数据库中不要直接存放隐私信息(如密码等),要进行加密或hash掉密码和敏感的信息

代码注入

命令注入

CSS注入

主机头注入