学生信息系统管理—优化

来源:互联网 发布:淘宝店的名字怎么取名 编辑:程序博客网 时间:2024/05/18 14:12

   在学生优化的过程中药更多的把自己放在一个用户的角度来看待整个的设计所存在的问题,本着方便与人的想法,学生优化所遇到的问题有:


一、SQL注入问题

在登录界面填好正确的用户名和密码后, 根据我们提交的用户名和密码被合成到SQL查询语句: 
   select * from users where username='lm' and password=md5('test') 
很明显,用户名和密码是我们所设置的,肯定能够成功登陆。但是,如果我们输入一个错误的用户名或密码,肯定登录不上,但是对于有SQL注入漏洞,只要构造个特殊的“字符串”,照样能够成功登录。 
比如:在用户名输入框中输入:' or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为: 
   select * from users where username='' or 1=1#' and password=md5('') 
语义分析:“#”在mysql中是注释符,这样井号后面的内容将被mysql视为注释内容,以下的两句sql语句等价: 

代码如下:
   select * from users where username='' or 1=1#' and password=md5('') 
等价于 
代码如下:
   select * from users where username='' or 1=1 
因为1=1永远是都是成立的,即where子句总是为真,将该sql进一步简化之后,等价于如下select语句: 
   select * from users
没错,该sql语句的作用是检索users表中的所有字段 ,即可成功登录
这是在学生中遇到的SQL注入问题,解决方法就是在设置用户名时加入更多的限制条件,如果感兴趣可以搜集更多关于SQL注入的问题

二、 更新按钮中添加 判断出生日期和入学日期是否符合逻辑的判断

 If Val(left(txtRudate,4))<Val(left(txtBorndate,4)) Then     MsgBox"入学年份和出生年份逻辑错误,请重新输入"vbOKOnly+vbExclamation,"警告"     txtBorndate.SetFocus     Mrc.Bookmark=myBookmark     Call viewData     Exit Sub End If 
三、在文件尾单击下一条 自动跳转到第一条记录,在文件头单击上一条自动跳转到最后一条记录

使表在逻辑上成为一个环。卷游标


四、使有些ComboBox控件不能输入,只能选择

1.combobox控件的style属性为2时,只可选择,不可输入

2.默认选中第一项的代码示例

If Combo1.ListCount> 0 ThenCombo1.ListIndex = 0End If

也可以设置部分Text框不能编辑,修改Locked属性

五、修改数据库中电话号码的个数,数据库中设置为10位,需修改为11位或其他

六、修改成绩不能超过100分或其他,符合实际情况

七、设置某些控件只能输入汉字

Private Sub txtName_KeyPress(KeyAscii As Integer) '设置输入用户名为汉字    If KeyAscii >= -20319 And KeyAscii <= -3652 Or KeyAscii = 8 Then    Else        MsgBox "请输入汉字!", 0 + 48, "警告"        KeyAscii = 0    End IfEnd Sub
八、当撤销check框前对勾时,Text框自动清空

Private Sub Check1_Click(Index As Integer) '当撤销学号或姓名或班号前对勾时,后面Text框清空If Not Check1(0).Value Then    txtSID.Text = ""End IfIf Not Check1(1).Value Then    txtName.Text = ""End IfIf Not Check1(2).Value Then    txtClassno.Text = ""End IfEnd Sub 
九、设置ListBox中内容不可改重复添加

Private Sub cmdAdd_Click()Dim i As Variant    If Listallcourse.ListIndex <> -1 Then '判断是否有内容被选中        If Listselectcourse.ListCount = 0 Then '判断已选框中是否存在记录        '将选中的课程赋值到已有课程中        Listselectcourse.AddItem Listallcourse.List(Listallcourse.ListIndex) '没有则添加记录        Exit Sub        End If        For i = 0 To Listselectcourse.ListCount - 1 '将已选框中的记录按照从0到i-1的顺序排列            If Listselectcourse.List(i) = Listallcourse.List(Listallcourse.ListIndex) Then '如果有记录与全部框中选中的该项重复则警告                MsgBox "此项已添加,请勿重复添加!", 0 + 48, "警告"            Exit Sub            End If        Next        Listselectcourse.AddItem Listallcourse.List(Listallcourse.ListIndex) '若无重复则输出            Else        MsgBox "请先点击“设置课程”按钮添加课程", 0 + 48, "警告"    End IfEnd Sub









原创粉丝点击