经过看书学习了一下网站会员的登陆与注册自己也跟着学习写了一下。
首先是功能的概述:
1.使用AJAX技术无刷新验证会员名
2.利用验证码防止用户的非法操作
3.会员注册时密码强弱提示
4.会员密码加密
5.会员注册时智能提示注册信息
6.防止SQL注入式攻击
下图为程序的业务流程图
一。实现关键技术
1.AJAX验证会员名是否存在
在验证会员名使用AJAX局部无刷新技术,应该首先添加ScriptManger和UpdatePanel控件,ScriptManger控件称为脚本管理控件,它能够管理Web页上的脚本。这两个控件的使用一同实现了局部界面无刷新的Web环境。
实现这种方式首先需要用来输入会员名的文本框控件和提示是否注册的label控件添加到UpdatePanel中。label控件提示会员是否注册通过文本框的textChange事件的实现。textChange通过SQL语句来查询用户输入的会员名是否已经注册.
2.密码强度显示
在输入文本框中的onchange事件中调用javascript中的passHint函数,来判断用户填写的密码
<script>
function passHint()
{
var txt=document.getElementById('txtPass').value();
if(txt.length<6)
{
document.all("tab").rows[0].cells[1].bgColor="red";
document.all("tab").rows[0].cells[2].bgColor="";
}
else
{
document.all("tab").rows[0].cells[2].bgColor="red";
document.all("tab").rows[0].cells[1].bgColor="";
}
}</script>
3.智能提示输入信息
这个功能也是使用javaScript脚本和文本框中的onFoucs()事件并且调用javaScript写好的函数
<script>
function tName()
{
document.getElementById("sp").innerHTML="只能输入数字、字母、下划线"
}
function tPass()
{
document.getElementById("sp").innerHTML="只能提供密码的安全性建议输入6位以上的密码"
}
</script>
4.防止SQL注入式攻击
举个例子来看SQL注入式攻击,加入在登陆页面里面添加一个文本框来输入会员名,添加一个按钮来登陆。在文本框里输入会员名“mr”,然后用SQL语句查找出数据库中符合条件的记录。select count(*) from LoginInfo where Name='mr' 通过这条语句可以再数据库中查询一条Name为mr的用户信息。如果在文本框中输入 “mr‘or’1‘=’1”,,那么sql语句为 select count(*) from LoginInfo where Name='mr'or'1'='1'这样一条sql语句能够查找出LoginInfo表中所有记录,为了防止这样的sql语句的攻击,通常采用SqlCommand.Parameters属性传参数的方法将非法字符过滤掉
5.验证码技术
验证码技术室有效防止注册用户用特定的程序暴力破解方式进行不断的登陆尝试来破解密码。