防止SQL攻击的解决方案

本文介绍了SQL注入攻击的原理和常见方法,包括数字注入和字符串注入,并详细阐述了解决SQL注入的方法,如使用PreparedStatement和输入参数的严格检查与过滤。预防SQL注入的策略包括检查输入变量类型和格式、转义特殊字符以及利用预编译机制。
摘要由CSDN通过智能技术生成

什么是SQL注入攻击

SQL注入攻击产生的原因:Statement传输器在发送SQL到数据库执行时,是直接将SQL语句和参数拼接在一起由于后台的SQL语句是拼接而来的。而其中的参数是由用户提交的,如果用户在提交参数时,在其中掺杂了一些SQL关键字或者特殊符号(比如,or # --),就可能会导致SQL语句的语意发生变化。从而执行一些意外的操作(在不知道密码的情况下也能登陆,甚至在不知道用户名和密码的情况下也能登陆),这就是SQL注入攻击。

如何进行SQL注入攻击

1.数字注入

注入or 1=1

 

  正常情况下,应该返回一个id=001的信息,但是由于一些SQL的特殊语句的注入导致显示user表内的所有信息。

为什么会这样呢?

这是因为,1=1永远是true,所有整个where语句永远是ture,所以where条件相当于没有加where条件,那么查询的结果相当于整张表的内容

2.字符串注入

注入#,#在SQL的语法是#后面所有的字符串都会被当成注释来处理

and后面的内容全部被注释掉,即使输错密码或者不输入密码都

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值