zl程序教程

您现在的位置是:首页 >  后端

当前栏目

学生信息管理系统--SQL注入

注入SQL -- 学生 信息管理系统
2023-09-14 08:59:38 时间
p span >   当你在登陆学生管理系统的时候,添加的用户名若和你数据库中的数据不符时,就会弹出一个窗体,告诉你没有这个用户;但是当你在用户名中输入数字或者字母外加英文状态下的单引号,比如:“a”,“or 1=1#”

 

然后你再运行的话,就会弹出下面的窗体

这就是SQL注入,百度上给出的定义是:通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

 

在我们做学生管理系统的时候,在登入窗体中有这么一段语句

 

 

两个单引号括起来的部分是判断输入的用户名是否和数据库中一致,但你输入“a”时,就会在两个单引号之间添加了一个单引号,结果可想而知,数据库无法连接,所以就无法登陆。

 

解决方法:

1、将txtUserName.text的文本框替换成ComboBox的下拉式的控件,直接从数据库中提取用户名,缺点就是这样造成用户名泄露!

2、加强对用户输入的验证。一些关键字直接给他过滤掉,比如drop 、datebase、delete,and,--,“’”  等一些关键字,写个方法直接过滤掉~!把单引号替换成两个单引号!数值型要强制转换!!!

3、在编写SQL语句时,使用参数化的语句来传递用户输入的变量,也就是说,用户的输入绝对不能够直接被嵌入到SQL语句中。

4、限制表单或查询字符串输入的长度。

5、将用户登入名称、密码等数据加密保存。加密用户输入的数据,然后再将它与数据库中保存的数据比较,这就相当于对用户输入的数据进行了“消毒”处理。

 


MySQL数据库安全性考虑:预防SQL注入漏洞 随着互联网的快速发展,数据库成为了现代应用程序中的重要组成部分。而在数据库的使用过程中,安全性一直是一个重要的关注点。SQL注入漏洞(SQL Injection)是一种常见的数据库安全漏洞,攻击者可以通过在应用程序的用户输入参数中注入恶意的SQL代码,从而获得对数据库的未授权访问权限。为了保护MySQL数据库免受SQL注入漏洞的威胁,以下是一些预防SQL注入漏洞的安全性考虑。
第十二届 BigData NoSQL Meetup — 基于hbase的New sql落地实践 立即下载