用ASP技术编制隐藏用户密码程序
程序员文章站
2022-05-02 23:18:54
internet(或intranet)上带权限的查询,只有“合法用户”才能进入。这种机制是通过web程序实现的。在访问过程中,如果程序设计得不好,就会将用户口令暴露在地址栏里(举一个例子:>http...
internet(或intranet)上带权限的查询,只有“合法用户”才能进入。这种机制是通过web程序实现的。在访问过程中,如果程序设计得不好,就会将用户口令暴露在地址栏里(举一个例子:>https://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)访问多种数据库(后台)。本文中用到的数据库为oracle(大型网站数据库平台)8,下边这段asp程序(名字为default.asp)所实现的功能是对数据库的查询操作,仅取其隐藏用户名和密码的一部分进行说明。
<% web_user =request("web_user") web用户名 %>
<% web_user_passwd =request("web_user_passwd") web用户的密码 %>
<% 将web用户名和密码,方法是,将变量值从左至右每个字符的ascii码加32,生成新的字符串,当执行到此时,地址行上显示出的,是“加密”以后的用户名和密码,而不是真正的用户名和密码,达到保密目的% >
<% 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 %>
<%建立和数据库的连接,定义odbc名字(odbcname)、oracle(大型网站数据库平台)用户名(orauser)及口令(orauser_passwd)%>
<%set conn = server.createobject("adodb.connection")
conn.open "odbcname","orauser","orauser_passwd"
%>
<% 建立查询语句-sql语句%>
<%
var_sql="select * from verifytab,dw_tab where verifytab.user_pd="&web_user_passwd&""
set rs = conn.execute(var_sql) ’符合条件的记录生成于rs之中%>
<%将用户名和口令翻译成正确的 ,但此时地址栏里显示不出来,达到了保密要求%>
<% 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 %>
<% 验证输入的web用户名和口令是否正确,若是,往下进行,否则,返回到default.htm调用,它是iis默认的调用文件%>〈〉
<%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 设计的form界面,内容省略%>
<html>
<head>
……
大家不妨试一下,端无任何不安全信息,保密效果很好。
asp是microsoft公司处理动态网络的最新技术之一,它可由windows nt 平台上的web server iis4.0(microsoft internet information server4.0)解释并发布信息,用活动数据对象ado(activex data object)并通过odbc(open database connectivity)访问多种数据库(后台)。本文中用到的数据库为oracle(大型网站数据库平台)8,下边这段asp程序(名字为default.asp)所实现的功能是对数据库的查询操作,仅取其隐藏用户名和密码的一部分进行说明。
<% web_user =request("web_user") web用户名 %>
<% web_user_passwd =request("web_user_passwd") web用户的密码 %>
<% 将web用户名和密码,方法是,将变量值从左至右每个字符的ascii码加32,生成新的字符串,当执行到此时,地址行上显示出的,是“加密”以后的用户名和密码,而不是真正的用户名和密码,达到保密目的% >
<% 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 %>
<%建立和数据库的连接,定义odbc名字(odbcname)、oracle(大型网站数据库平台)用户名(orauser)及口令(orauser_passwd)%>
<%set conn = server.createobject("adodb.connection")
conn.open "odbcname","orauser","orauser_passwd"
%>
<% 建立查询语句-sql语句%>
<%
var_sql="select * from verifytab,dw_tab where verifytab.user_pd="&web_user_passwd&""
set rs = conn.execute(var_sql) ’符合条件的记录生成于rs之中%>
<%将用户名和口令翻译成正确的 ,但此时地址栏里显示不出来,达到了保密要求%>
<% 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 %>
<% 验证输入的web用户名和口令是否正确,若是,往下进行,否则,返回到default.htm调用,它是iis默认的调用文件%>〈〉
<%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 设计的form界面,内容省略%>
<html>
<head>
……
大家不妨试一下,端无任何不安全信息,保密效果很好。