众所周知,ASP双层结构(Web页面一服务器)的特点,使得ASP程序开发效率高,易学易用。也正因如此,ASP成为了目前最流行的后台语言之一。但ASP的双层结构也使得ASP网站的安全性大打折扣。数据库连接代码直接写于ASP页面当中,稍懂网页基础的编程者就可以轻易盗取ASP网站数据库的用户名和密码,从而进一步得到网站的最高管理权限,由此引起的后果将是不堪设想的!为此,我们给大家介绍一下如何通过现有的脚本加密技术实现ASP多层安全机制,使ASP网站的安全性大大提高。

一、使用JavaScript脚本对网页进行基本加密

JavaScript是一种新的描述语言,它可以被嵌入HTML的文件之中。透过JavaScript可以做到回应使用者的需求事件(如:form的输入)而不用任何的网路来回传输资料,所以当一位使用者输入一项资料
时,它不用经过传给伺服端(server)处理,再传回来的过程,而直接可以被客户端( client)的应用程式所处理。可以将它想象成一个在客户机上运行的程序。

利用JavaScript我们可以对网页进行初步加密。

1、利用javaScript禁止右键功能

< script language;一JavaScripC>

<! 一一

document.onmousedown=click

function click()

{

if( event.button= =2){alert(’不准查看源文件’)}

if( evcnt.button==3){ alert(’不准查看源文件’)}

}

//一一>

< /script>

以上这段程序原理是:首先捕捉鼠标按键信息,然后对其进行判断,如果是右键则弹出警告窗口。这样做的目的是:禁止快捷菜单弹出,使黑客不能通过点击查看源文件就能轻易看到静态网页的源码。

2、利用JavaScript实现口令密码校验

< acript IANGUAGE=一JAVASCRJPT>

<! ——

loopy()

fmction loopy()

{

var pass=""

while (paas!="login")//login为密码

{ pass=prompt("请输入密码")

}

alert("登录成功")

}

//——>

< /script>

此法用了while()死循环,如果密码不对,连用右键和菜单查看源文件的机会都没有,只有关闭JavaScript了。

3、利用JaVaScript实现只能输入三次密码

< txmpt IANGUAGE="JavaScript">

<! - - Begin

function password()

{

var testV=1;

var pass1=prompt("请输入密码:",);

while (testV<3)

{

if(! pass1)

histmy.back();

if (pass1=="password")//password为密码

alert("登录成功!");

window.location="time.html"//正确链接的URL.html

break;

}

testV+=1;

Var pass1=prompt("密码不对,请重新输入");

}

if (pass1="password"&ttestV==3)

history·go( -1);//失败则返回前一个文档,可用window.location="***/***.htm"替换

retum"';

}

document.write( password());

</scriy>

二、综合使用网页制作技术与JavaScript脚本对网页进行多层加密

用JavaScript对网页进行加密的好处在于不需要特别的后台程序(如:ASP,JSP,PHP,CGI)支持,也就是说不需要数据库对其进行支持。然而,用JavaScript对网页文件加密是非常容易被人破解的,比如:在口令密码校验的这个例子当中,只要网页盗用者有一点编程基础,就很容易获取登录密码。

具体步骤:查看网页源代码,找出JavaScript所设置的网页密码,登录。

对这样一种情况的不完全解决方法是:将多种JavaScript保密方法综合运用。下面给出一个具体的解决方案。

步骤一:用Frontpage 2000 XP或以上版本新建一个网页,取名为:index.htm。

步骤二:点击:插入一内嵌式网页框架一新建一取名为:iframe.htm;设置内嵌式网页框架属性,将长和宽均设置为100%。

步骤三:将以下这段代码插入iframe的<body>和< /body>之间任何位置。

< acriy language= NJrwaScriptN>

<! 一一

document.onmouaedovm=click

function cliclc()

{

if(event.button==2){alert("不准查看源文件")}

if(event.button==3){alert("不准查看源文件")}

}

//一一>

< /script>

这样做的目的何在?又会有什么功能?下面将详细说明。

步骤一的目的:包含一个内嵌式网页框架,这样一来,在IE中点击查看一源文件时看到的就是in.dcx.htm这个页面的源代码,而不是iframe.htm的源代码。而我们真正想保护的内容在iframe.htm当中。

步骤二的目的:使iframe.htm和index.htm看起来像一个页面。

步骤三的目的:禁止了鼠标在iframe.htm范围中鼠标右键的能力。想要看源代码只有通过在IE中点击查看一源文件才能实现,然而由于内嵌式网页框架的存在,这时看到的源代码只是index.htm的源代码,
而这个页面当中没有任何有用的信息。

如果要对一个页面进行登录询问,只需将上例中的JavaScript代码换成以下代码就可。

< script lANGUAGE ="JAVASCRIPT ">

<!_一一

loopy()

function loopy()

{

varpass=""

while(pass!="login") //login为密码

{

pass=prompt("请输入密码")

}

alert("登录成功")

}

//一一>

< /script>

三、用Flash的Action Script脚本对特定的页面连接进行完全保护

随着Flash技术的不断发展,Flash的作用再也不仅仅局限于替代GIF的一种动画格式,Flash中对Action Script脚本的支持使得我们能够运用它对特定连接进行有效保护。

如何用脚本加密技术实现对ASP网页加密

界面如上述所示。需要注意的是:文本框a、文本框b为动态文本框,用于传送变量。登录为按钮,用于触发Action Script脚本。具体步骤如下:

主界面状态下—对登录点击右键一点击动作一在AS专家模式下输入以下代码:

if(a=="用户名"and b=="密码")tben

{

getud=="成功的连接地址"

}

else

{

geltud=="失败的连接地址"

}

导出动画SWF即可,最后将这个F1ash插入到网页中即可完成。由于Flash不具有源代码的特点,所以对于保护特定连接来说可以起到很好的效果。如果想查看源文件,那么看到Flash的源文件只是:

<embed src="flash名"></embed>这样的HTML代码,没有丝毫的价值。

四、组合运用多种脚本对ASP网站进行多层加密

按照上述加密方法,我们只要将它们组合运用就可以实现ASP网站的多重安全机制。具体步骤如下:

步骤一:用Frontpage 2000 XP或以上版本新建一个网页。取名为:index.htm。

步骤二:点击:插入一内嵌式网页框架一新建一取名为:iframe.htm一设置内嵌式网页框架属性,将长和宽均设置为100%。

步骤三:将以下这段代码插入iframe的<body>和< /body>之间任何位置。

< script language=一JaV8Scrip,>

<! 一一

document.onmousedown=click

function click()

{

if(event. bufion==2){alert("不准查看源文件")}

if(event.button==3){alert("不准查看源文件")}

}

//一一>

< /script>

这样做的目的是防止他人查看ASP源文件,也就是说可以防止他人盗取数据库连接文件的密码和帐户。

步骤四:在数据库中,对登录权限(用户名或密码)进行加密。这样的加密方法很多,如:对每个字符取其ASCII码,然后全部后移或前进一位,再还原成字符。这样,即使黑客能攻人数据库,也不能轻易得到网站的最高管理权限。

小知识之ASCII

ASCII是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC646。