给Web应用程序增加口令保护

ZDNet软件频道 时间:2000-10-24 作者:Dave Edis / 译者:张猛 |  我要评论()
本文关键词:
在这篇文章里,我们学习如何给在5分钟内,给新开发的或者现有的Web应用程序加上口令保护。

第二步:建立流程图
 
下面,建立一个流程图,用来说明口令处理的流程。由于这个处理过程相对简单,所以不必使用图形表示。

口令处理流程应当是现有程序调用的第一批例程之一。在用户第一次访问程序时,会看到一个登录页面。如果用户提交了正确的口令,那么需要设置一个cookies,当用户再次访问程序时,将读取这个cookie。如果用户输入了错误的口令,就会显示无效登录页面。

如果登录表单里没有口令,就代表这是用户第一次访问程序,还没有输入口令;或者说明用户可能已经输入了口令,但是没有保存在他们机器的上的cookie里。在这种情况下,应当有一个带有正确口令的cookie,只有cookie存在,程序才继续,如果不存在或者不正确,程序就应当转到登录屏幕并退出。

这听起来可能有点复杂,但是如果你看看有关的Perl脚本,就会找到感觉。

  $pw;    # 实际的口令
  $in;  # 用户在登录表单里输入的口令
  $ck;  # 保存在cookie里的用户口令

 ### 登录表单例程
 ### 这些例程检测用户在登录页里输入的口令是否正确
 if ($in && $in eq $pw) {  # 输入的口令正确
   &SetCookie("passlib_pw","$in");  # 设置口令cookie
   return;       # 继续执行程序
   }
 elsif ($in && $in ne $pw) { # 输入的口令不正确
   print "Content-type: text/html

";   # 打印内容头信息
   print &Template("$cgidir/_passlib_invalid.html");  # 输出无效登录页面
   exit;       # 退出
   }

 ### COOKIE 例程
 ### 这些例程检测保存在口令cookies里的口令是否正确
 elsif ($ck && $ck eq $pw) { # 保存在cookie里的口令正确
   return;       # 继续执行程序
   }

 else {       # 保存在 cookie 里的口令不正确或者不存在
   print "Content-type: text/html

";   # 打印内容头信息
   print &Template("$cgidir/_passlib_login.html");  # 输出登录页
   exit;       # 退出
   }

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134