实现网页密码验证的两个基本方法

网络整理 - 09-04
    我们在访问一些网站时,经常会碰到需要输入“用户名和密码”的网页,用户名和密码的验证给网站的安全带来保障,一般网页的安全设置以目录为单位,通过设置目录的属性可以保证网站的安全,这样的网页是如何制作出来的呢?

  下面笔者将介绍在网页设计中密码验证的两种方法,希望能给网页设计者有所帮助。 

  一、使用IIS所提供的工具 
  如果设计者是管理员级的用户,我们可以用一种简单的方法来实现密码验证。假设你安装的Web服务器是IIS,我们可以通过IIS所提供的“Internet服务管理员”进行目录安全设置。假设我们把/Sample设置成安全目录,首先启动“Internet安全服务管理员”,打开“默认的站点”,我们选取“Home”目录。接着选取“编辑属性”,在出现的“Sample属性”窗口中,选取“目录安全设置”选项,然后按下“匿名存取及验证控制”中的编辑按钮,将“允许匿名”按钮取消,选取“基本”。接下来当上网者要浏览这个目录的网页时,浏览器就会显示“请输入用户名和密码”的窗口,要求用户输入用户名和密码,因为IIS验证的方法是与NT服务器结合在一起,只要是NT服务器的用户,就是IIS的用户,因此这里输入的用户名和密码是已经在NT服务器中建立的用户及对应的密码。用这种方法我们可以轻松实现对Sample目录网页的密码验证。 

  二、使用ASP程序 
  利用程序来进行密码验证,这种方法较为通用,它对Web服务器没有具体要求,它是借助数据库及ASP程序进行设计,来实现一种通用网页加密。 
  首先,我们利用Microsoft Access建立“用户名称及密码”的数据表,假设将这个表取名为User,数据库名为Usercheck.mdb,数据表的结构如下: 
字段说明 字段名称 数据类型 数据长度 
  我们在访问一些网站时,经常会碰到需要输入“用户名和密码”的网页,用户名和密码的验证给网站的安全带来保障,一般网页的安全设置以目录为单位,通过设置目录的属性可以保证网站的安全,这样的网页是如何制作出来的呢?
  下面笔者将介绍在网页设计中密码验证的两种方法,希望能给网页设计者有所帮助。 

  一、使用IIS所提供的工具 
  如果设计者是管理员级的用户,我们可以用一种简单的方法来实现密码验证。假设你安装的Web服务器是IIS,我们可以通过IIS所提供的“Internet服务管理员”进行目录安全设置。假设我们把/Sample设置成安全目录,首先启动“Internet安全服务管理员”,打开“默认的站点”,我们选取“Home”目录。接着选取“编辑属性”,在出现的“Sample属性”窗口中,选取“目录安全设置”选项,然后按下“匿名存取及验证控制”中的编辑按钮,将“允许匿名”按钮取消,选取“基本”。接下来当上网者要浏览这个目录的网页时,浏览器就会显示“请输入用户名和密码”的窗口,要求用户输入用户名和密码,因为IIS验证的方法是与NT服务器结合在一起,只要是NT服务器的用户,就是IIS的用户,因此这里输入的用户名和密码是已经在NT服务器中建立的用户及对应的密码。用这种方法我们可以轻松实现对Sample目录网页的密码验证。 

  二、使用ASP程序 
  利用程序来进行密码验证,这种方法较为通用,它对Web服务器没有具体要求,它是借助数据库及ASP程序进行设计,来实现一种通用网页加密。 
  首先,我们利用Microsoft Access建立“用户名称及密码”的数据表,假设将这个表取名为User,数据库名为Usercheck.mdb,数据表的结构如下: 
字段说明 字段名称 数据类型 数据长度 
用户名称 ID 文本 15 
密码 PWD 文本 15 

  验证程序PASS.ASP的源代码如下:
  

<% 
  Function Check( ID, Pwd ) 
   Dim conn, par, rs 
   Set conn = Server.CreateObject("ADODB.Connection") 
   par = "driver={Microsoft Access Driver (*.mdb)} " 
   conn.Open par && ";dbq=" && Server.MapPath("usercheck.mdb ") 
   sql = "Select * From users Where ID= && ID && And Pwd = && Pwd &&" 
   Set rs = conn.Execute( sql ) 
   If rs.EOF Then 
     Check= False 
   Else 
     Check= True 
   End If 
  End Function 
  %>
  <% 
  If IsEmpty(Session("Passed")) Then Session("Passed") = False 
  Head = "请输入用户名和密码" 
  ID = Request("ID") 
  Pwd = Request("Pwd") 
  If ID = "" Or Pwd = "" Then 
   Head = "请输入用户名和密码" 
  Else If Not Check( ID, Pwd ) Then 
   Head = "用户名称或密码有错" 
  Else 
   Session("Passed") = True 
  End If 
  If Not Session("Passed") Then 
  %> 
  <html> 
  <head><title></title></head> 
  <body BGCOLOR="#FFFFFF"> 
  <h2 ALIGN="CENTER"><%=Head%></h2> 
  <hr WIDTH="100%"> 
  <form Action="<%=Request.ServerVariables("PATH_INFO")%>" Method="POST"> 
   <table BORDER="1" CELLSPACING="0"> 
    <tr> 
     <td ALIGN="RIGHT">用户名称:</td> 
     <td><input Type="Text" Name="ID" Size="12" Value="<%=ID%>"></td> 
    </tr> 
    <tr><td ALIGN="RIGHT">密码:</td>
    <td><input Type="Password" Name="Pwd" Size="12" Value="<%=Pwd%>"></td></tr> 
   </table> 
   <p><input Type="Submit" Value="确定"></p>
  </form> 
  <hr WIDTH="100%" align="center"> 
  </body>
  </html> 
  <%Response.End 
  End If%>

 

  这个验证合法性的页面具有通用性,只要在需要加密网页的最前面加上如下程序: 
  

<!--#include file="pass.asp"-->

 
  即可实现对任意网页进行加密的功能了。