论文部分内容阅读
1. Ajax技术的实现
传统Web 1.0时代B/S架构的系统在处理用户登录等信息时会引起真实的页面跳转,如在用户验证页中完成对用户登录身份合法性认证,即在用户验证页面中判断并弹出提示警告信息。由于用户验证页不同于用户登录页,其为单纯提供用户登录身份合法性认证的功能模块,所以其提示警告信息的显示是在与用户登录界面完全不同的一个空白页面中显示的,这样会非常影响用户的使用心情。
为了解决传统Web1.0的B/S架构系统的这一问题,本文系统的设计采用了Web 2.0的核心技术Ajax。通过使用先进的Ajax技术,可以实现异步在各系统页面文件中传输数据,如在用户登录页面和用户验证页中传递用户帐号、密码等数据信息,信息的传递全部在后台完成,前台用户端完全感觉不到其后台工作,使得用户登录模块能够实现像C/S架构一样无页面跳转处理登录错误信息,增强了用户的体验。
当用户在登录界面相应位置输入个人帐号、密码及验证码信息并按下登录按钮时,会触发userCheck函数。userCheck函数对用户输入的用户帐号、验证码进行验证,如为空即弹出“用户帐号和验证码不能为空”的警告框,如不为空则通过Ajax技术,即send_request函数,将用户帐号、密码、验证码异步传送到用户验证页中进行进一步身份验证。
系统通过send_request函数将用户帐号、密码、验证码异步传送到用户验证页中后,再通过PHP与SQL Server 建立数据库连接,使用select语句在ac_clientinfo表中查找与用户输入的帐号和密码相符,并且身份相符的数据库记录,如有记录则表示通过身份验证,异步返回由right、用户帐号、用户输入的验证码和验证码页面随机生成的图形验证码合并,并且各字段用“+”连接的一个长字符串;如没有记录则表示没有通过身份验证,异步返回wrong。
Ajax异步传输数据返回用户登录页面后,转由processRequest函数处理返回的数据信息。processRequest函数将返回数据信息以“+”为标记分割,放入数组arr_restext中。数组arr_restext的第三个元素即arr_restext[2],是用户输入的验证码,数组arr_restext的第四个元素即arr_restext[3],是系统随机自动生成的验证码,如果两者不一致则弹出警告提示信息“验证码错误”;数组arr_restext的第一个元素,即arr_restext[0],包含返回值是right或wrong的信息,如果为right表示通过身份合法性验证,页面转向登录主界面,同时传递用户帐号accid和赋值为true的flag变量。
因为系统设计采用模块化方式,用户身份合法性验证及图形验证码验证方式分别在独立的用户验证页面和验证码页面实现,而系统用户登录是在登录页面中实现,这就必然需要在各个页面间传递相关数据信息,如在登录页面、用户验证页面间传递用户帐号、密码等数据信息。
2. 图形验证码技术的实现
另外,为了防止互联网上黑客利用网络机器人(robot)程序探测系统登录帐号和密码,不停尝试提交身份验证表单以自动登录系统,本系统加入了图形验证码技术以加强用户登录安全性认证。所谓图形验证码,就是将一串随机产生的数字或字符生成一张图片,图片中加入干扰像素或使图片不规则排列,以防止OCR识别,这样用户就只能通过肉眼识别图片中显示的验证码信息,完成输入并提交表单信息,进行正常系统身份验证,验证通过后方可使用系统功能。
本系统采用的图形验证码编程实现的原理是:使用动态编程语言PHP,随机生成一个4位的随机数字,通过GD库的支持生成一张根据该4位随机数字所确定的图片,再将4位随机数字写入到session中,传递到用户登录页面,同时将生成的验证码图片在系统登录界面上显示给系统登录用户,要求系统登录用户输入验证码图片显示的4位随机数字内容,用户提交验证表单后,在验证页面中验证session中的4位随机数字验证码与用户提交的验证码内容是否一致,不一致则弹出警告信息,同时session中保存的4位随机数字验证码失效,由图形验证码生成文件重新随机生成一个新的4位随机数字,并重新通过GD库生成一张根据这个新生成的4位随机数字所确定的新图片,并要求用户重新进行验证。
参考文献
[1] 廖宇雷.AJAX浏览器异步编程.程序员,2006,12:35-39.
[2] 徐殿军.一种基于PHP验证码图片的实现.渤海大学学报(自然科学版),2006,4:20-23.
传统Web 1.0时代B/S架构的系统在处理用户登录等信息时会引起真实的页面跳转,如在用户验证页中完成对用户登录身份合法性认证,即在用户验证页面中判断并弹出提示警告信息。由于用户验证页不同于用户登录页,其为单纯提供用户登录身份合法性认证的功能模块,所以其提示警告信息的显示是在与用户登录界面完全不同的一个空白页面中显示的,这样会非常影响用户的使用心情。
为了解决传统Web1.0的B/S架构系统的这一问题,本文系统的设计采用了Web 2.0的核心技术Ajax。通过使用先进的Ajax技术,可以实现异步在各系统页面文件中传输数据,如在用户登录页面和用户验证页中传递用户帐号、密码等数据信息,信息的传递全部在后台完成,前台用户端完全感觉不到其后台工作,使得用户登录模块能够实现像C/S架构一样无页面跳转处理登录错误信息,增强了用户的体验。
当用户在登录界面相应位置输入个人帐号、密码及验证码信息并按下登录按钮时,会触发userCheck函数。userCheck函数对用户输入的用户帐号、验证码进行验证,如为空即弹出“用户帐号和验证码不能为空”的警告框,如不为空则通过Ajax技术,即send_request函数,将用户帐号、密码、验证码异步传送到用户验证页中进行进一步身份验证。
系统通过send_request函数将用户帐号、密码、验证码异步传送到用户验证页中后,再通过PHP与SQL Server 建立数据库连接,使用select语句在ac_clientinfo表中查找与用户输入的帐号和密码相符,并且身份相符的数据库记录,如有记录则表示通过身份验证,异步返回由right、用户帐号、用户输入的验证码和验证码页面随机生成的图形验证码合并,并且各字段用“+”连接的一个长字符串;如没有记录则表示没有通过身份验证,异步返回wrong。
Ajax异步传输数据返回用户登录页面后,转由processRequest函数处理返回的数据信息。processRequest函数将返回数据信息以“+”为标记分割,放入数组arr_restext中。数组arr_restext的第三个元素即arr_restext[2],是用户输入的验证码,数组arr_restext的第四个元素即arr_restext[3],是系统随机自动生成的验证码,如果两者不一致则弹出警告提示信息“验证码错误”;数组arr_restext的第一个元素,即arr_restext[0],包含返回值是right或wrong的信息,如果为right表示通过身份合法性验证,页面转向登录主界面,同时传递用户帐号accid和赋值为true的flag变量。
因为系统设计采用模块化方式,用户身份合法性验证及图形验证码验证方式分别在独立的用户验证页面和验证码页面实现,而系统用户登录是在登录页面中实现,这就必然需要在各个页面间传递相关数据信息,如在登录页面、用户验证页面间传递用户帐号、密码等数据信息。
2. 图形验证码技术的实现
另外,为了防止互联网上黑客利用网络机器人(robot)程序探测系统登录帐号和密码,不停尝试提交身份验证表单以自动登录系统,本系统加入了图形验证码技术以加强用户登录安全性认证。所谓图形验证码,就是将一串随机产生的数字或字符生成一张图片,图片中加入干扰像素或使图片不规则排列,以防止OCR识别,这样用户就只能通过肉眼识别图片中显示的验证码信息,完成输入并提交表单信息,进行正常系统身份验证,验证通过后方可使用系统功能。
本系统采用的图形验证码编程实现的原理是:使用动态编程语言PHP,随机生成一个4位的随机数字,通过GD库的支持生成一张根据该4位随机数字所确定的图片,再将4位随机数字写入到session中,传递到用户登录页面,同时将生成的验证码图片在系统登录界面上显示给系统登录用户,要求系统登录用户输入验证码图片显示的4位随机数字内容,用户提交验证表单后,在验证页面中验证session中的4位随机数字验证码与用户提交的验证码内容是否一致,不一致则弹出警告信息,同时session中保存的4位随机数字验证码失效,由图形验证码生成文件重新随机生成一个新的4位随机数字,并重新通过GD库生成一张根据这个新生成的4位随机数字所确定的新图片,并要求用户重新进行验证。
参考文献
[1] 廖宇雷.AJAX浏览器异步编程.程序员,2006,12:35-39.
[2] 徐殿军.一种基于PHP验证码图片的实现.渤海大学学报(自然科学版),2006,4:20-23.