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

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

 

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

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

 

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

 

 

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

 

解决方法:

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

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

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

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

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

 

时间: 2025-01-19 00:20:08

学生信息管理系统--SQL注入的相关文章

谁有c#+sql做的学生信息管理系统的论文啊

问题描述 谁有c#+sql做的学生信息管理系统的论文啊,要1万字,最好带源码,急!有的发我邮箱dennis_kang@163.com!万分感谢!多谢大家了,很急! 解决方案 解决方案二:最好还是自己做吧,纯粹个人意见.Thanks解决方案三:不会啊,现在急用了,也不叫你们做个给我,谁有现成的就发给我吧解决方案四:毕业设计要自己弄解决方案五:你分数也要加个100吧,人家看了进来才有动力啊解决方案六:不会就再学一年,学会了再弄知道csdn也算厉害的了

jsp, sqlserver2008设计学生信息管理系统

问题描述 jsp, sqlserver2008设计学生信息管理系统 遇到的问题大致这样,我想用数据库中的表来存储学生的成绩时,发现每个年级有不同的班,每个班有不同的科目,导致成绩录入时得放在不同的表中,导致表很多,同时也导致在jsp页面修改成绩信息时,提交的页面也不同,产生很多也面,想要做好这个系统$!当然不怕麻烦,不怕表多,不怕提交页面多,但是下一学年时,每个班的课程又变,管理员需要在后台创建很多新表,修改很多页面,需要花大量时间,导致这个系统实用性不强,请大家给我提宝贵意见,让我把这个系统做

sqlserver-如何利用log4net为用C#写的学生信息管理系统创建log日志

问题描述 如何利用log4net为用C#写的学生信息管理系统创建log日志 我用Visual Studio和SQL Server写的学生信息管理系统,如何用log4net为系统自动创建日志.我先前在网上找了一些资料,不过都是需要点击button控件来触发事件建立log日志,我想要和一般的日常应用软件那样能够在系统运行的时候能够自动生成文本形式的日志,请问各位大神如何实现.最好给一个实例参考一下,感激不尽. 解决方案 没有彻底的自动的.程序必竟要人来写.可以在关键事件.方法记日志,倒不一定要在bu

处女作—学生信息管理系统

       我承认,当我第一次看到学生信息管理系统的时候,我的脑海里浮现的一个字是"晕",这么大的一个系统,要我完成,这岂不是比国际玩笑还国际玩笑,然而一个功能块一个功能块的实现,一个窗体一个窗体渐渐成形,一路走来,蓦然回首,过程是如此珍贵,美丽,动人,在信息系统进行的过程中,困难也是接踵而至,但是,弯道之中总有财富,让你柳暗花明.........        1 粗心的毛病        第一个错误犯得很不应该,导致添加学籍信息这个功能块的相关代码编不进去,如下图所示,红色区域没

JSP学生信息管理系统_JSP编程

本文实例为大家分享了JSP学生信息管理系统源码,JSP+Servlet+Javabean+JDBC+MySQL,供大家参考,具体内容如下 1.service层,进行数据库操作     package com.service; /** * 负责学生信息的所有数据库操作,增删改查 */ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQ

关于学生信息管理系统的改进问题

     最近在大家验收时,我旁听了一点,很多师哥师姐提出了很多我们没有到过的东西,感觉长了不少知识.    一,界面的美化    在作品展的时候还能想到界面的美化,但是这次却没怎么注意,但是至少那些控件的摆放,对齐还是要有滴.   二,回车键不能使用     比如,在我们登陆学生信息管理系统的时候,敲完用户名和密码进入系统时,猛敲回车,根本不能像QQ那样,如我们所愿的进入系统,而是呆呆的毫无反应,这时,只能尴尬地,毫无创意地去点击确定按钮.这根本不符合我们平时的习惯嘛~    这个问题改进起来

C语言有谁编过一个简单的系统吗?学生信息管理系统 求助!用C++编程

问题描述 C语言有谁编过一个简单的系统吗?学生信息管理系统 求助!用C++编程 各项功能说明 (1)学生基本信息的录入和保存: 这部分的功能主要包括信息的录入和保存和总分.平均分的计算,首先按程序提示输入所要输入的学生人数,接着是分别输入有关学生的相关信息包括学号.姓名.年龄.性别以及学生各科成绩的分数等.在录入数据的同时,系统将对信息的合法性进行检验(学号范围为100~200.姓名不限.年龄为15~50岁.性别可输入m或f.各科成绩均限定在0~100之间),若用户录入了不合法的数据系统将会作出

c#-c++写的一个简单学生信息管理系统,求助。

问题描述 c++写的一个简单学生信息管理系统,求助. 编译不报错,就是运行不出来 #include<iostream.h> #include<stdio.h> #include<string.h> class student//定义学生信息类 {public: char name[20]; char num[10]; char banji[20]; int math,english,chinese,computer; int sum; double ave; void

mfc-c++的实验,基于序列化的MFC版学生信息管理系统的问题

问题描述 c++的实验,基于序列化的MFC版学生信息管理系统的问题 在不借助数据库的前提下,如何建立一个表头信息?基于序列化的MFC版学生信息管理系统中如何设计单文档能显示表头,比如姓名,性别,民族等信息的表头? 解决方案 参考:http://wenku.baidu.com/link?url=W5taasZK2OTSLuGjh4b_hT_3vhia3odIArjeUVONZFavSyENLmTRW2dNHY5Qu1c411E6D0dUKl-bp-rrIy49S7wwkYFeYofqUbGESNA