如何用腳本加密技術(shù)對ASP網(wǎng)頁加密

眾所周知,ASP雙層結(jié)構(gòu)(Web頁面一服務(wù)器)的特點(diǎn),使得ASP程序開發(fā)效率高,易學(xué)易用。也正因如此,ASP成為了目前最流行的后臺(tái)語言之一。但ASP的雙層結(jié)構(gòu)也使得ASP網(wǎng)站的安全性大打折扣。數(shù)據(jù)庫連接代碼直接寫于ASP頁面當(dāng)中,稍懂網(wǎng)頁基礎(chǔ)的編程者就可以輕易盜取ASP網(wǎng)站數(shù)據(jù)庫的用戶名和密碼,從而進(jìn)一步得到網(wǎng)站的最高管理權(quán)限,由此引起的后果將是不堪設(shè)想的!為此,我們給大家介紹一下如何通過現(xiàn)有的腳本加密技術(shù)實(shí)現(xiàn)ASP多層安全機(jī)制,使ASP網(wǎng)站的安全性大大提高。

一、使用JavaScript腳本對網(wǎng)頁進(jìn)行基本加密

JavaScript是一種新的描述語言,它可以被嵌入HTML的文件之中。透過JavaScript可以做到回應(yīng)使用者的需求事件(如:form的輸入)而不用任何的網(wǎng)路來回傳輸資料,所以當(dāng)一位使用者輸入一項(xiàng)資料
時(shí),它不用經(jīng)過傳給伺服端(server)處理,再傳回來的過程,而直接可以被客戶端( client)的應(yīng)用程式所處理。可以將它想象成一個(gè)在客戶機(jī)上運(yùn)行的程序。

利用JavaScript我們可以對網(wǎng)頁進(jìn)行初步加密。

1、利用javaScript禁止右鍵功能

< script language;一JavaScripC>

<! 一一

document.onmousedown=click

function click()

{

if( event.button= =2){alert(’不準(zhǔn)查看源文件’)}

if( evcnt.button==3){ alert(’不準(zhǔn)查看源文件’)}

}

//一一>

< /script>

以上這段程序原理是:首先捕捉鼠標(biāo)按鍵信息,然后對其進(jìn)行判斷,如果是右鍵則彈出警告窗口。這樣做的目的是:禁止快捷菜單彈出,使黑客不能通過點(diǎn)擊查看源文件就能輕易看到靜態(tài)網(wǎng)頁的源碼。

2、利用JavaScript實(shí)現(xiàn)口令密碼校驗(yàn)

< acript IANGUAGE=一JAVASCRJPT>

<! ——

loopy()

fmction loopy()

{

var pass=""

while (paas!="login")//login為密碼

{ pass=prompt("請輸入密碼")

}

alert("登錄成功")

}

//——>

< /script>

此法用了while()死循環(huán),如果密碼不對,連用右鍵和菜單查看源文件的機(jī)會(huì)都沒有,只有關(guān)閉JavaScript了。

3、利用JaVaScript實(shí)現(xiàn)只能輸入三次密碼

< 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"http://正確鏈接的URL.html

break;

}

testV+=1;

Var pass1=prompt("密碼不對,請重新輸入");

}

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

history·go( -1);//失敗則返回前一個(gè)文檔,可用window.location="***/***.htm"替換

retum"';

}

document.write( password());

</scriy>

二、綜合使用網(wǎng)頁制作技術(shù)與JavaScript腳本對網(wǎng)頁進(jìn)行多層加密

用JavaScript對網(wǎng)頁進(jìn)行加密的好處在于不需要特別的后臺(tái)程序(如:ASP,JSP,PHP,CGI)支持,也就是說不需要數(shù)據(jù)庫對其進(jìn)行支持。然而,用JavaScript對網(wǎng)頁文件加密是非常容易被人破解的,比如:在口令密碼校驗(yàn)的這個(gè)例子當(dāng)中,只要網(wǎng)頁盜用者有一點(diǎn)編程基礎(chǔ),就很容易獲取登錄密碼。

具體步驟:查看網(wǎng)頁源代碼,找出JavaScript所設(shè)置的網(wǎng)頁密碼,登錄。

對這樣一種情況的不完全解決方法是:將多種JavaScript保密方法綜合運(yùn)用。下面給出一個(gè)具體的解決方案。

步驟一:用Frontpage 2000 XP或以上版本新建一個(gè)網(wǎng)頁,取名為:index.htm。

步驟二:點(diǎn)擊:插入一內(nèi)嵌式網(wǎng)頁框架一新建一取名為:iframe.htm;設(shè)置內(nèi)嵌式網(wǎng)頁框架屬性,將長和寬均設(shè)置為100%。

步驟三:將以下這段代碼插入iframe的<body>和< /body>之間任何位置。

< acriy language= NJrwaScriptN>

<! 一一

document.onmouaedovm=click

function cliclc()

{

if(event.button==2){alert("不準(zhǔn)查看源文件")}

if(event.button==3){alert("不準(zhǔn)查看源文件")}

}

//一一>

< /script>

這樣做的目的何在?又會(huì)有什么功能?下面將詳細(xì)說明。

步驟一的目的:包含一個(gè)內(nèi)嵌式網(wǎng)頁框架,這樣一來,在IE中點(diǎn)擊查看一源文件時(shí)看到的就是in.dcx.htm這個(gè)頁面的源代碼,而不是iframe.htm的源代碼。而我們真正想保護(hù)的內(nèi)容在iframe.htm當(dāng)中。

步驟二的目的:使iframe.htm和index.htm看起來像一個(gè)頁面。

步驟三的目的:禁止了鼠標(biāo)在iframe.htm范圍中鼠標(biāo)右鍵的能力。想要看源代碼只有通過在IE中點(diǎn)擊查看一源文件才能實(shí)現(xiàn),然而由于內(nèi)嵌式網(wǎng)頁框架的存在,這時(shí)看到的源代碼只是index.htm的源代碼,
而這個(gè)頁面當(dāng)中沒有任何有用的信息。

如果要對一個(gè)頁面進(jìn)行登錄詢問,只需將上例中的JavaScript代碼換成以下代碼就可。

< script lANGUAGE ="JAVASCRIPT ">

<!_一一

loopy()

function loopy()

{

varpass=""

while(pass!="login") //login為密碼

{

pass=prompt("請輸入密碼")

}

alert("登錄成功")

}

//一一>

< /script>

三、用Flash的Action Script腳本對特定的頁面連接進(jìn)行完全保護(hù)

隨著Flash技術(shù)的不斷發(fā)展,F(xiàn)lash的作用再也不僅僅局限于替代GIF的一種動(dòng)畫格式,F(xiàn)lash中對Action Script腳本的支持使得我們能夠運(yùn)用它對特定連接進(jìn)行有效保護(hù)。

如何用腳本加密技術(shù)實(shí)現(xiàn)對ASP網(wǎng)頁加密

界面如上述所示。需要注意的是:文本框a、文本框b為動(dòng)態(tài)文本框,用于傳送變量。登錄為按鈕,用于觸發(fā)Action Script腳本。具體步驟如下:

主界面狀態(tài)下—對登錄點(diǎn)擊右鍵一點(diǎn)擊動(dòng)作一在AS專家模式下輸入以下代碼:

if(a=="用戶名"and b=="密碼")tben

{

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

}

else

{

geltud=="失敗的連接地址"

}

導(dǎo)出動(dòng)畫SWF即可,最后將這個(gè)F1ash插入到網(wǎng)頁中即可完成。由于Flash不具有源代碼的特點(diǎn),所以對于保護(hù)特定連接來說可以起到很好的效果。如果想查看源文件,那么看到Flash的源文件只是:

<embed src="flash名"></embed>這樣的HTML代碼,沒有絲毫的價(jià)值。

四、組合運(yùn)用多種腳本對ASP網(wǎng)站進(jìn)行多層加密

按照上述加密方法,我們只要將它們組合運(yùn)用就可以實(shí)現(xiàn)ASP網(wǎng)站的多重安全機(jī)制。具體步驟如下:

步驟一:用Frontpage 2000 XP或以上版本新建一個(gè)網(wǎng)頁。取名為:index.htm。

步驟二:點(diǎn)擊:插入一內(nèi)嵌式網(wǎng)頁框架一新建一取名為:iframe.htm一設(shè)置內(nèi)嵌式網(wǎng)頁框架屬性,將長和寬均設(shè)置為100%。

步驟三:將以下這段代碼插入iframe的<body>和< /body>之間任何位置。

< script language=一JaV8Scrip,>

<! 一一

document.onmousedown=click

function click()

{

if(event. bufion==2){alert("不準(zhǔn)查看源文件")}

if(event.button==3){alert("不準(zhǔn)查看源文件")}

}

//一一>

< /script>

這樣做的目的是防止他人查看ASP源文件,也就是說可以防止他人盜取數(shù)據(jù)庫連接文件的密碼和帳戶。

步驟四:在數(shù)據(jù)庫中,對登錄權(quán)限(用戶名或密碼)進(jìn)行加密。這樣的加密方法很多,如:對每個(gè)字符取其ASCII碼,然后全部后移或前進(jìn)一位,再還原成字符。這樣,即使黑客能攻人數(shù)據(jù)庫,也不能輕易得到網(wǎng)站的最高管理權(quán)限。

小知識之ASCII

ASCII是基于拉丁字母的一套電腦編碼系統(tǒng)。它主要用于顯示現(xiàn)代英語和其他西歐語言。它是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng),并等同于國際標(biāo)準(zhǔn)ISO/IEC646。