1、將以下代碼加入到HEML的<body></body>之間
<SCRIPT language=javascript>
function click() {if (event.button==2) {alert('不許你偷看!');}}document.onmousedown=click
</SCRIPT>
.................................................................
2、禁止查看網(wǎng)頁(yè)源代碼
真正能實(shí)現(xiàn)源代碼屏蔽的單純的.htm是不可能的!想看源代碼是沒(méi)辦法阻止的。用TELEPROT可以下載任何文件,相當(dāng)于做鏡像網(wǎng)站, 除非服務(wù)器進(jìn)行安全設(shè)置、加密。 下面給幾種參考方法,使在瀏覽我的個(gè)人主頁(yè)時(shí)不能使用右鍵或者不能看到源程序或源代碼等。
1)在主頁(yè)上輸入代碼:
<SCRIPT language=javascript>
function click() {
if (event.button==2) {
alert(\'對(duì)不起,禁止使用此功能^_^.\')
}
}
document.onmousedown=click
</SCRIPT>
<script language="JavaScript">
<!--
locate = 0;
function scroller() {
if (locate !=500 ) {
locate++;
scroll(0,locate);
clearTimeout(timer);
var timer = setTimeout("scroller()",3);
timer;
}
}
// -->
</script>
2)網(wǎng)頁(yè)安全技術(shù)指南
隨著Internet的飛速發(fā)展,網(wǎng)站的數(shù)量正呈幾何級(jí)速度遞增,網(wǎng)頁(yè)上的信息極大豐富,但網(wǎng)站的安全與信息的版權(quán)卻不斷受到威脅.近來(lái),全球各大網(wǎng)站先后遭到黑客攻擊,接著,為了順應(yīng)新形勢(shì),國(guó)內(nèi)首家有關(guān)網(wǎng)絡(luò)安全專題誕生了.網(wǎng)站與網(wǎng)頁(yè)的安全性受到越來(lái)越多的關(guān)注,本文將由淺入深地介紹關(guān)于加強(qiáng)網(wǎng)頁(yè)安全性的各種技術(shù)和技巧,對(duì)關(guān)心網(wǎng)頁(yè)源代碼版權(quán)和網(wǎng)頁(yè)數(shù)據(jù)安全保護(hù)的讀者有較大的幫助.
初級(jí)入門篇
對(duì)廣大網(wǎng)頁(yè)編寫者來(lái)說(shuō),對(duì)源代碼的保護(hù)是最為關(guān)注的,但往往卻沒(méi)有任何辦法.辛辛苦苦編寫的網(wǎng)頁(yè)在瀏覽者面前毫無(wú)遮掩,只要被別人輕輕點(diǎn)擊鼠標(biāo)右鍵,選擇(查看源代碼)一項(xiàng)后,即可獲得網(wǎng)頁(yè)完全代碼,甚至稍加修改后就成為他人的網(wǎng)頁(yè).本篇將通過(guò)采用JavaScript技術(shù),對(duì)頁(yè)面源代碼的修改,使瀏覽者無(wú)法獲得源碼,達(dá)到保護(hù)代碼的目的.
首先,應(yīng)屏蔽Internet Explorer工具欄中-查看-源代碼一項(xiàng)的功能,即將頁(yè)面采用框架結(jié)構(gòu)的方式.若你的頁(yè)面并未使用框架結(jié)構(gòu),且不需使用框架結(jié)構(gòu),可使用"零框架"技術(shù)(即將頁(yè)面分為左右兩幀,左幀的寬度為1,右?guī)瑸樵?yè)面).該方法的代碼如下:
<html>
<head>
<title>歡迎光臨網(wǎng)頁(yè)教學(xué)網(wǎng)</TITLE>
</HEAD>
<FRAMESET COLS="1,*" frameborder=0 framespacing=0>
<FRAME SRC="PS.HTM" NAME="count" noresize scrolling=no>
<FRAME SRC="search.HTM" NAME="search" noresize>
</frameset>
</html>
將該文件存為主文件index.htm,建立一空文件ps.htm,原頁(yè)面文件現(xiàn)另存為index.html(與主文件名僅在擴(kuò)展名上略有不同).采用零框架技術(shù)有以下優(yōu)點(diǎn):
1.瀏覽者在用工具欄中的源代碼項(xiàng)無(wú)法直接得到頁(yè)面代碼,僅能得到框架主文件的代碼(即上述代碼).
2.可利用左幀文件ps.htm加載一些網(wǎng)頁(yè)的高級(jí)應(yīng)用,如背景音樂(lè),網(wǎng)頁(yè)計(jì)數(shù)器,cookie應(yīng)用等.
其次,應(yīng)屏蔽鼠標(biāo)右鍵的顯示源文件功能,即在所需保護(hù)的頁(yè)面文件(上例中為index.html文件)中加入以下代碼:(當(dāng)右鍵被點(diǎn)擊時(shí)將出現(xiàn)圖1所示提示框)
<script Language="JavaScript">
function click() {
if (event.button==2||event.button==3) {alert(\'"用右鍵要干嘛?"^_^\') }}
//引號(hào)中提示可自定義
document.onmousedown=click
</script>
最后,為防止一些了解網(wǎng)頁(yè)編寫語(yǔ)言的人通過(guò)框架主文件中的連接手工找出被保護(hù)頁(yè)面后獲得源代碼,還應(yīng)在被保護(hù)頁(yè)面中加入以下代碼:
<script language="javascript">
if(top==self)top.location="index.html"
</script>
這段代碼將提供跳回功能,使瀏覽器無(wú)法直接看到該頁(yè),而是自動(dòng)跳回框架主文件index.html,起到保護(hù)該頁(yè)面的作用.
在完成以上三個(gè)步驟,對(duì)你的主頁(yè)按照框架結(jié)構(gòu)進(jìn)行了修改后,你的主頁(yè)源代碼將不能被瀏覽者在網(wǎng)上獲得,可以小小慶賀一下了
另外,若你確實(shí)不想用框架頁(yè)面,那么可用特殊的方法打開瀏覽器新窗口,再結(jié)合屏蔽鼠標(biāo)的功能代碼后亦可收到同樣的效果,打開方法如下:
<a href=javascript:window.open("key.html","被保護(hù)頁(yè)面的標(biāo)題","height=170,width=290,left=0,top=0,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,copyhistory=0") target=_blank>打開被保護(hù)頁(yè)面的連接</a>
代碼中,key.html為被保護(hù)頁(yè)面的文件名.新窗口的高度height與寬度width的值可由用戶自定義,單位為像素.
注意:嵌入式的 JavaScript代碼應(yīng)加在原文件的<head></head>元素區(qū)內(nèi).
中級(jí)深入篇
上篇中是采用JavaScript技術(shù)達(dá)到保護(hù)在線網(wǎng)頁(yè)的目的.正所謂"強(qiáng)中自有強(qiáng)中手",有些人使用Webzip,TelePro,Offline等離線瀏覽器下載你的主頁(yè),就可繞過(guò)JavaScript保護(hù)在線網(wǎng)頁(yè)的防線,將網(wǎng)頁(yè)下載后再慢慢剖析.有矛必有盾,你亦可用JavaScript建立的動(dòng)態(tài)轉(zhuǎn)向文件是大多數(shù)離線瀏覽器無(wú)法下載你的網(wǎng)頁(yè),方法如下.你可將上例中的被保護(hù)頁(yè)面更名為index1.html,而將文件index.html改為以下代碼:
<script>
window.location.replace(\'index1.html\') //本句產(chǎn)生網(wǎng)頁(yè)跳轉(zhuǎn)功能
</script>
對(duì)Internet Explorer5新增的離線瀏覽功能(脫機(jī)工作),以上方法有時(shí)失靈,可通過(guò)對(duì)網(wǎng)頁(yè)設(shè)置cookie的高級(jí)技術(shù)達(dá)到保護(hù)的目的.一旦cookie超期,即使網(wǎng)頁(yè)已被下載到本機(jī)也無(wú)法瀏覽,呵呵,厲害吧:)
應(yīng)加入文件中的cookie代碼段如下:
<script language="JavaScript">
function getCookieVal (offset)
{
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name)
{
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0)
break;
}
return null;
}
function SetCookie (name, value)
{
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (2 < argc) ? argv[2] : true;
var path = (3 < argc) ? argv[3] : true;
var domain = (4 < argc) ? argv[4] : true;
var secure = (5 < argc) ? argv[5] : true; //安全模式生效
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
function ResetCounts(name)
{
visits = 0;
SetCookie(expdate , "/", true, true);
location.reload();
}
</script>
<script language="JavaScript">
var expdate = new Date();
var visits;
expdate.setTime(expdate.getTime() + (24*60*60 * 1000)); //COOKIES超期時(shí)間設(shè)置,此處為1天
if(!(visits = GetCookie("visits")))
visits = 0;
visits++;
SetCookie(expdate, "/", true, true);
</script>
如果你已經(jīng)做到這一步了,那么你的網(wǎng)頁(yè)所受到的保護(hù)就不再是常規(guī)意義上的出于道德觀念或版權(quán)意識(shí),而是真正的技術(shù)上的保護(hù)手段.
高級(jí)研究篇
對(duì)網(wǎng)頁(yè)的保護(hù)并不僅僅是涉及源代碼的保護(hù),更應(yīng)該包含對(duì)網(wǎng)頁(yè)數(shù)據(jù)或網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的保護(hù).對(duì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的保護(hù)可采用基于IIS的CGI接口的認(rèn)證程序,SQL的安全技術(shù),ASP安全認(rèn)證程序,Java Applet安全認(rèn)證程序等手段,屬于更高層次的安全措施,包含大量?jī)?nèi)容,本文不作介紹.本篇將介紹應(yīng)用JavaScript技術(shù)構(gòu)造的頁(yè)面認(rèn)證接口.將僅供有限人群訪問(wèn)的需要數(shù)據(jù)保護(hù)的頁(yè)面中加入以下代碼:
<script LANGUAGE="JAVASCRIPT">
<!--
loopy()
function loopy() {
var sWord =""
while (sWord != "hibow") {
sWord = prompt("輸入正確密碼登陸! ")
}
alert("身份識(shí)別......允許登陸")
}
//-->
</script>
注意:嵌入式的 JavaScript代碼應(yīng)加在原文件的<head></head>元素區(qū)內(nèi).
代碼中字段sWord的值hibow為登陸被保護(hù)頁(yè)面的密碼.你可將自定義的密碼告訴允許訪問(wèn)該頁(yè)面的用戶,僅當(dāng)密碼被正確輸入后瀏覽者才可看見頁(yè)面內(nèi)容,否則將循環(huán)停留在密碼登入框中(見圖2),進(jìn)不去嘍
為了達(dá)到保護(hù)頁(yè)面源代碼及數(shù)據(jù)的最佳效果,可將本文介紹的所有方法相結(jié)合,這就要考驗(yàn)大家的悟性和能力了。
這樣是鎖不住代碼的,只要先點(diǎn)左健不放,再點(diǎn)右健,在放左建,就能看了,如果你的主頁(yè)是用ASP,PHP,或者CGI購(gòu)建的,一般對(duì)方是看不到源代碼的。防右鍵的方法已經(jīng)過(guò)時(shí)了 還有一個(gè)辦法就是把回車全去掉,把整個(gè)文件壓縮。這樣看到也看不清楚, 還不影響動(dòng)行。
另:silverlight 收集:
一個(gè)入門小實(shí)例 silverlight 是什么?