14.3 会员登录
会员登录主要通过判断用户输入的会员名和密码是否与数据库中的会员名和密码相等来实现,相等则登录成功。现在许多网站在登录页面中利用验证码技术,阻止一些非法的操作。本节介绍会员登录功能的实现。
14.3.1 实现关键技术
1.防止SQL注入式攻击
在判断用户输入的会员名和密码是否和数据库中的相等时,需要注意SQL注入式攻击,SQL注入式攻击是指利用设计上的漏洞,在目标服务器上运行SQL命令以及进行其他方式的攻击。假如在登录页面里添加一个文本框用来输入会员名,一个按钮用来登录。在文本框中输入会员名“mr”,然后用SQL语句查找出数据库中符合条件的记录有几条。SQL语句如下。
Select count(*) from LoginInfo where Name='mr' |
如果在文本框中输入“mr’or’1’=’1”那么SQL语句如下。
Select count(*) from LoginInfo where Name='mr' or '1' = '1' |
这样一条SQL语句的作用是查找出LoginInfo表中的所有记录,为了防止这样的SQL语句注入攻击,通常使用SqlCommand.Parameters属性传参的方法将非法字符过滤掉。代码如下。
com.Parameters.Add(new SqlParameter("@name", SqlDbType.VarChar, 50)); |
2.验证码技术
所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰像素,由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某些功能。验证码的作用是有效防止注册用户用特定程序暴力破解方式进行不断的登录尝试来破解密码。实际上用验证码是现在很多网站通行的方式,虽然登录略显麻烦,但是这个功能还是很有必要,也很重要。不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。下面详细介绍本程序中验证码技术的实现。
在ValidateCode.aspx页面中Page_Load事件实现了验证码的关键技术。首先在Page_Load事件中调用了CreateRandomCode自定义方法用来产生4位随机字符,在将随机字符保存到Session中便于判断验证码输入的对错。最后调用CreateImage自定义方法对4位随机字符产生干扰。Page_Load事件的代码如下。
protected void Page_Load(object sender, EventArgs e) |
自定义方法CreateRandomCode产生4位随机字符,主要使用字符串数组存放数字和大写字母,使用随机数产生数组的下标,把字符取出放入字符串中。CreateRandomCode方法代码如下。
//产生4位随即字符 |
把取出的字符串通过自定义方法CreateImage添加一些干扰素,在CreateImage方法中绘制验证码需要应用Graphics类封装一个绘图图面、Font类定义字体字号和字形属性、Brush类定义填充图形的形状、Pen类定义用于绘制直线和曲线的对象使用这几个类需要添加命名空间using System.Drawing。CreateImage方法中的代码如下。
//给随机字符添加干扰 |
| 回书目 上一节 下一节 |
|
· Linux结课考试自测获奖.. · 上周Linux系统命令的使.. · 上周真题冲刺测试获奖.. · 全国计算机等考四级模.. · 08年3月各大网上书店及.. · 网络工程师模拟测试获.. |
· 全国计算机软考考试指.. · 3月24日WCF聊天活动 积.. · 全国计算机等级考试四.. · 软件项目估计:第2版 · 系统分析师基础知识自.. · 构建可扩展的Web站点的.. |
|
||||
| · 三层交换技术专题 · 2008年上半年全国软考.. · 微软出价446亿美元收购.. · 首届中国IT工程师生态.. · 视频访谈:网管员如何踏.. · 企业数据恢复指南 · Linux——从菜鸟到高手 · 交换机故障解决指南 |
· OSPF路由协议专栏 · 勇闯IT培训黑色围城 · 见证中国网络安全二十年 · 技术人求职简历完备手册 · 华为员工自杀频频拷问.. · 思科全球CEO钱伯斯第七.. · 北漂技术人90天求职纪实 · 2007年互联网大会 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · Apache技术专题 · 中间件应用技术专题 · 三层交换技术专题 |
· SQL Server入门到精通 · Apache技术专题 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux防火墙 · 打造安全服务器 · SOA 面向服务架构 · PHP开发应用手册 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · iSCSI应用与发展 · 三层交换技术专题 |
· Apache技术专题 · RAID——磁盘阵列基础 · 企业数据恢复指南 · 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · ADSL应用面面俱到 · ADSL应用面面俱到 |
|||