用ASP技術(shù)編制隱藏用戶密碼程序
發(fā)表時(shí)間:2023-08-11 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]Internet(或Intranet)上帶權(quán)限的查詢,只有“合法用戶”才能進(jìn)入。這種機(jī)制是通過Web程序?qū)崿F(xiàn)的。在訪問過程中,如果程序設(shè)計(jì)得不好,就會(huì)將用戶口令暴露在地址欄里(舉一個(gè)例子:http:...
Internet(或Intranet)上帶權(quán)限的查詢,只有“合法用戶”才能進(jìn)入。這種機(jī)制是通過Web程序?qū)崿F(xiàn)的。在訪問過程中,如果程序設(shè)計(jì)得不好,就會(huì)將用戶口令暴露在地址欄里(舉一個(gè)例子:http://www.mmm.nnn/default.asp ?superusername=john&passwd=john123,用戶名john和密碼john123全露出來了),這樣系統(tǒng)就無保密和安全性可言了。怎樣避免這種現(xiàn)象的發(fā)生呢?本文將用一段ASP(Active Server pages)程序,來說明隱藏用戶名和口令的方法。
ASP是Microsoft公司處理動(dòng)態(tài)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的最新技術(shù)之一,它可由Windows NT 平臺(tái)上的Web Server IIS4.0(Microsoft Internet Information Server4.0)解釋并發(fā)布信息,用活動(dòng)數(shù)據(jù)對(duì)象ADO(ActiveX Data Object)組件并通過ODBC(Open Database Connectivity)訪問多種數(shù)據(jù)庫(kù)(后臺(tái))。本文中用到的數(shù)據(jù)庫(kù)為ORACLE8,下邊這段ASP程序(名字為DEFAULT.ASP)所實(shí)現(xiàn)的功能是對(duì)數(shù)據(jù)庫(kù)的查詢操作,僅取其隱藏用戶名和密碼的一部分進(jìn)行說明。
<% WEB_USER =Request("WEB_USER") 'WEB用戶名 %>
<% WEB_USER_PASSWD =Request("WEB_USER_PASSWD") 'WEB用戶的密碼 %>
<% '將WEB用戶名和密碼加密,方法是,將變量值從左至右每個(gè)字符的ASCII碼加32,生成新的字符串,當(dāng)執(zhí)行到此時(shí),地址行上顯示出的,是“加密”以后的用戶名和密碼,而不是真正的用戶名和密碼,達(dá)到保密目的% >
<% TEMP1="" % >
<% For i=1 To Len(WEB_USER) %>
<% TEMP2=Mid(WEB_USER,i,1) %>
<% TEMP2=Chr(Asc(TEMP2)+32) %>
<% TEMP1=TEMP1&TEMP2 %>
<% Next %>
<% WEB_USER=TEMP1 %>
<% TEMP1="" %>
<% For i=1 To Len(WEB_USER_PASSWD) %>
<% TEMP2=Mid(WEB_USER_PASSWD,i,1) %>
<% TEMP2=Chr(Asc(TEMP2)+32) %>
<% TEMP1=TEMP1&TEMP2 %>
<% Next %>
<% WEB_USER_PASSWD=TEMP1 %>
<%'建立和數(shù)據(jù)庫(kù)的連接,定義ODBC名字(odbcname)、ORACLE用戶名(orauser)及口令(orauser_passwd)%>
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "odbcname","orauser","orauser_passwd"
%>
<% '建立查詢語(yǔ)句-SQL語(yǔ)句%>
<%
var_sql="SELECT * FROM verifytab,dw_tab where verifytab.user_pd='"&WEB_USER_PASSWD&"'"
Set RS = Conn.Execute(var_sql) ’符合條件的記錄生成于RS之中%>
<%'將用戶名和口令翻譯成正確的 ,但此時(shí)地址欄里顯示不出來,達(dá)到了保密要求%>
<% TEMP1="" %>
<% For i=1 To Len(WEB_USER) %>
<% TEMP2=Mid(WEB_USER,i,1) %>
<% TEMP2=Chr(Asc(TEMP2)-32) %>
<% TEMP1=TEMP1&TEMP2 %>
<% Next %>
<% WEB_USER=TEMP1 %>
<% TEMP1="" %>
<% For i=1 To Len(WEB_USER_PASSWD) %>
<% TEMP2=Mid(WEB_USER_PASSWD,i,1) %>
<% TEMP2=Chr(Asc(TEMP2)-32) %>
<% TEMP1=TEMP1&TEMP2 %>
<% Next %>
<% WEB_USER_PASSWD=TEMP1 %>
<% '驗(yàn)證輸入的WEB用戶名和口令是否正確,若是,往下進(jìn)行,否則,返回到default.htm調(diào)用,它是IIS默認(rèn)的調(diào)用文件%>〈〉
<%If WEB_USER="superuser" and WEB_USER_PASSWD="superuserpd" Then
else
If RS.EOF Then
Response.Redirect("default.htm")
End If
End If
%>
<%'下邊是用FRONTPAGE 98 設(shè)計(jì)的FORM界面,內(nèi)容省略%>
<html>
<head>
……
大家不妨試一下,瀏覽器端無任何不安全信息,保密效果很好。