我们目前接触到的小工程有很多是需要连接数据库才能实现的。例如小型超市管理系统,数据监管网站等。
这些小工程必然会涉及到SQL注入问题。目前我碰到的问题如下:
1.最简单的数据库排序规则问题,在mySQL中,数据库存储的数据被分为很多排序规则,默认为 “latin1_swedish_ci”,在此规则下,数据不能为中文,只能为字母和数字,若通过应用程序在数据库中添加不符合规则的数据,会显示乱码或不显示。
其实这类问题在我当时写程序时很容易发现。。在查了几遍代码后保证并没有什么后台操作是会将数据修改成无意义乱码的情况下,那么显然是数据库出现了问题。
那么显然,只有两种错误可能,类型和排序规则。简单查阅一下资料便可知使用utf8规则才能支持中文输入。
2.SQL注入问题。
定义:利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入恶意SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。
用户在程序端的输入行为是无法预测的,所以要在程序中使用正则表达式等方法对用户的输入数据进行检测,对于后台数据库引擎错误的select命令抛出异常即可。
时间: 2024-10-01 03:32:14