为什么要参数化执行SQL语句呢?
2017-08-19 17:58
681 查看
C#参数化执行SQL语句,防止漏洞攻击本文以MYSQL为例【20151108非查询操作】
为什么要参数化执行SQL语句呢?一个作用就是可以防止用户注入漏洞。
简单举个列子吧。
比如账号密码登入,如果不用参数,
写的简单点吧,就写从数据库查找到id和pw与用户输入一样的数据吧
sql:select id,pw where id='inputID' and pw='inputPW';
一般情况没什么问题,但如果用户输入的id或PW带 ‘ ,这是可能就会出现漏洞,bug了
比如用户输入的id是: 1‘ or ’1‘=‘1
这是sql语句执行的是:select id,pw where id='1‘ or ’1‘=‘1 ‘ and pw='inputPW';
那数据库里的所有账号密码都符合这个条件了。
简而言之,用户可以通过 ' 来改变你SQL的执行。
参数化就可以避免这个问题了。
相关文章推荐
- 使用参数化和块语句来提高批处理SQL语句的执行效率(2)
- 使用参数化和块语句来提高批处理SQL语句的执行效率
- EntityFramework 执行SQL语句进行参数化查询代码示例
- 使用参数化和块语句来提高批处理SQL语句的执行效率
- 为什么ASP中执行动态SQL总报错误信息?提示语句语法错误
- entity framework(EF) 直接执行数据库命令并返回DataTable 参数化sql语句
- SQL内部拼接执行SQL语句时,实现变量参数化
- 浅析SqlServer简单参数化模式下对sql语句自动参数化处理以及执行计划重用
- thinkphp为什么SQL语句执行了还要报错
- 关于EF中直接执行sql语句的参数化问题
- 使用参数化和块语句来提高批处理SQL语句的执行效率
- Entity Framework(EF) 直接执行数据库命令并返回 DataTable 数据参数化 SQL 语句
- Oracle执行参数化SQL语句和存储过程
- 为什么ASP中执行动态SQL总报错误信息?提示语句语法错误
- 执行sql语句中 为什么应该尽量减少“SELECT *”这类语句的使用
- C#使用参数化和块语句来提高批处理SQL语句的执行效率
- Hibernate SQLQuery执行实体查询带来的多个无关联查询语句
- 使用Core Data时如何看到所执行的SQL语句?
- SQL语句执行效率及分析(note)
- 查看sql语句执行时间/测试sql语句性能