注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

刘檬 廊坊师范学院信息技术提高班十四期

 
 
 

日志

 
 

学生信息管理系统3  

2017-08-16 09:48:59|  分类: 数据库 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一、字符串函数
Len(string):计算字符串长度的函数,返回字符串String中字符的个数,半角字符、全角字符、汉字、空格均为一个字符,空字符串的长度为0
LenB:LenB 函数作用于字符串中的字节数据,如同在双字节字符集(DBCS)语言中一样。所以 LenB 返回的是用于代表字符串的字节数,而不是返回字符串中字符的数量。如为用户自定义类型,LenB 返回在内存中的大小,包括元素之间的衬垫。
LenB可以用于设置用户名的输入为字母或汉字
注:ANSI方式下1个英文字符占一个字节,汉字占两个字节;UNICODE方式下汉字英文均占两个字节
Trim(string):返回删除字符串String左右空格之后的剩余部分
二、信息框函数
MsgBox (提示信息,对话框类型,对话框标题)
在学生中我们经常用到的语句是:
MsgBox "请输入密码!",VBOkonly+VBExclamation,"警告"
可以转换为数值形式:
MsgBox "请输入密码!",0+48,"警告"
还有更多的用法,感兴趣的话大家可以查一查
三、SQL注入问题

在登录界面填好正确的用户名(tXtUserName)和密码(txtPassword)后,点击提交,我们将进入学生的主界面 因为根据我们提交的用户名和密码被合成到SQL查询语句当中之后是这样的:
select * from users where username='marcofly' 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注入的问题

  评论这张
 
阅读(6)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017