专栏首页令仔很忙学生信息管理系统--SQL注入

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

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

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

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

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

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

解决方法:

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

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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • VB 子窗体被PictureBox控件挡住无法显示

       VB做机房收费系统的时候,用的MDI主窗体,在主窗体上加了一个Picturebox控件,运行的时候,点了子窗体,但是却没有出现,后来才发现,子窗体被Pic...

    令仔很忙
  • 新手学Linux(五)----Linux下安装Redis

    Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案。它支持存储的value类型很多,包括strin...

    令仔很忙
  • Hybird App(一)----第一次接触

    之前一直在做JAVA的项目,最近要开发移动端,对App的开发刚开始的时候是没有任何概念的,有接触也就是玩手机用过的N多App,这算是真正意义山的第一次和App...

    令仔很忙
  • SQL Server2012新特性概述

    公司最近要升级数据库,SQL Server 2008R2-->2012。再开始升级之前先找了点资料分析一下2012的新特性和功能,提前预热一下。 2012中主要...

    用户1217611
  • 互联网金融再掀争夺战:巨头抢筹消费金融

     互联网金融这个时下热门的产业,除了第三方支付、理财、小贷等多个维度外,亦包括生态链条的上下游延伸,而消费金融则成为该产业发展路上的“高地”。   而未来...

    腾讯研究院
  • [Setting]win7下运行exe失败:应用程序无法启动,因为应用程序的并行配置不正确

    因为他们是新装的系统,给他们装的是Win7 32bit的系统,其它什么都没安装,根据网上的说明,估计是两个问题。

    祥知道
  • 如何更改 Linux 的 I/O 调度器

    Linux 的 I/O 调度器是一个以块式 I/O 访问存储卷的进程,有时也叫磁盘调度器。Linux I/O 调度器的工作机制是控制块设备的请求队列:确定队列中...

    Debian中国
  • 大数据勾绘新型智慧城市发展新蓝图

    2017首届粤港澳大湾区新型智慧城市高峰论坛于11月2日在美丽的花城广州召开。本次会议由中国信息协会主办,广州信息协会承办,中国信息协会副会长朱玉,国家工信部杨...

    安恒信息
  • Web网站服务(apache的权限设置)

    L宝宝聊IT
  • 【JVM故事】了解JVM的结构,好在面试时吹牛

    jvm包括两种数据类型,基本类型和引用类型。 基本类型包括,数值类型,boolean类型,和returnAddress类型。 数值类型包括,整型,浮点型...

    Java3y

扫码关注云+社区

领取腾讯云代金券