用ASP技術編製隱藏用戶密碼程序


Internet(或Intranet)上帶權限的查詢,只有「合法用戶」才能進入。這種機制是通過Web程序實現的。在訪問過程中,如果程序設計得不好,就會將用戶口令暴露在地址欄裡(舉一個例子:http://www.mmm.nnn/default.asp ?superusername=john&passwd=john123,用戶名john和密碼john123全露出來了),這樣系統就無保密和安全性可言了。怎樣避免這種現象的發生呢?本文將用一段ASP(Active Server pages)程序,來說明隱藏用戶名和口令的方法。

ASP是Microsoft公司處理動態網絡數據庫的最新技術之一,它可由Windows NT 平台上的Web Server IIS4.0(Microsoft Internet Information Server4.0)解釋並發佈信息,用活動數據對像ADO(ActiveX Data Object)組件並通過ODBC(Open Database Connectivity)訪問多種數據庫(後台)。本文中用到的數據庫為ORACLE8,下邊這段ASP程序(名字為DEFAULT.ASP)所實現的功能是對數據庫的查詢操作,僅取其隱藏用戶名和密碼的一部分進行說明。

  1. <%
  2. WEB_USER =Request("WEB_USER") 'WEB用戶名
  3. WEB_USER_PASSWD =Request("WEB_USER_PASSWD") 'WEB用戶的密碼
  4. '將WEB用戶名和密碼加密,方法是,將變量值從左至右每個字符的ASCII碼加32,生成新的字符串,當執行到此時,地址行上顯示出的,是「加密」以後的用戶名和密碼,而不是真正的用戶名和密碼,達到保密目的
  5.  
  6. TEMP1=""
  7. For i=1 To Len(WEB_USER)
  8.         TEMP2=Mid(WEB_USER,i,1)
  9.         TEMP2=Chr(Asc(TEMP2)+32)
  10.         TEMP1=TEMP1&TEMP2
  11. Next
  12.  
  13. WEB_USER=TEMP1
  14. TEMP1=""
  15.  
  16. For i=1 To Len(WEB_USER_PASSWD)
  17.          TEMP2=Mid(WEB_USER_PASSWD,i,1)
  18.          TEMP2=Chr(Asc(TEMP2)+32)
  19.          TEMP1=TEMP1&TEMP2
  20. Next
  21.  
  22. WEB_USER_PASSWD=TEMP1
  23.  
  24. '建立和數據庫的連接,定義ODBC名字(odbcname)、ORACLE用戶名(orauser)及口令(orauser_passwd)
  25.  
  26. Set Conn = Server.CreateObject("ADODB.Connection")
  27. Conn.Open "odbcname","orauser","orauser_passwd"
  28.  
  29. '建立查詢語句-SQL語句
  30.  
  31. var_sql="Select * FROM verifytab,dw_tab where verifytab.user_pd="&WEB_USER_PASSWD&""
  32. Set RS = Conn.Execute(var_sql) 』'符合條件的記錄生成於RS之中
  33.  
  34. '將用戶名和口令翻譯成正確的 ,但此時地址欄裡顯示不出來,達到了保密要求
  35.  
  36. TEMP1=""
  37.  
  38. For i=1 To Len(WEB_USER)
  39.         TEMP2=Mid(WEB_USER,i,1) >
  40.         TEMP2=Chr(Asc(TEMP2)-32)
  41.         TEMP1=TEMP1&TEMP2
  42. Next
  43.  
  44. WEB_USER=TEMP1
  45.  
  46. TEMP1=""
  47.  
  48. For i=1 To Len(WEB_USER_PASSWD)
  49.         TEMP2=Mid(WEB_USER_PASSWD,i,1)
  50.         TEMP2=Chr(Asc(TEMP2)-32)
  51.         TEMP1=TEMP1&TEMP2
  52. Next
  53.  
  54. WEB_USER_PASSWD=TEMP1
  55.  
  56. '驗證輸入的WEB用戶名和口令是否正確,若是,往下進行,否則,返回到default.htm調用,它是IIS默認的調用文件〈〉
  57.  
  58. If WEB_USER="superuser" and WEB_USER_PASSWD="superuserpd" Then
  59.  
  60. else
  61.         If RS.EOF Then
  62.                 Response.Redirect("default.htm")
  63.         End If
  64. End If
  65.  
  66. %>
  67.  
  68. <%'下邊是用FRONTPAGE 98 設計的FORM界面,內容省略 %>
  69.  
  70. <html>
  71.  
  72. <head>

……

大家不妨試一下,瀏覽器端無任何不安全信息,保密效果很好






[本日志由 FindSome 于 2014-08-06 05:46 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: asp 密碼
相關日誌:

评论: 0 | 引用: 0 | 查看次数: 2956
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 关闭 | [img]标签 关闭