以下是引用片段:
<SCRIPT language=Javascript>
function click() {if (event.button==2) {alert('不許你偷看!');}}document.onmousedown=click
</SCRIPT>
2、禁止查看網頁源代碼
真正能實現源代碼屏蔽的單純的.htm是不可能的!想看源代碼是沒辦法阻止的。用TELEPROT可以下載任何文件,相當於做鏡像網站,
除非服務器進行安全設置、加密。
下面給幾種參考方法,使在浏覽我的個人主頁時不能使用右鍵。
1)在主頁上輸入代碼:
以下是引用片段:
<script language="JavaScript">
<!--
if (window.Event)
document.captureEvents(Event.MOUSEUP);
function nocontextmenu()
{
event.cancelBubble = true
event.returnValue = false;
return false;
}
function norightclick(e)
{
if (window.Event)
{
if (e.which == 2 || e.which == 3)
return false;
}
else
if (event.button == 2 || event.button == 3)
{
event.cancelBubble = true
event.returnValue = false;
return false;
}
}
document.oncontextmenu = nocontextmenu; // for IE5+
document.onmousedown = norightclick; // for all others
//-->
</script>
2)網頁安全技術指南
隨著Internet的飛速發展,網站的數量正呈幾何級速度遞增,網頁上的信息極大豐富,但網站的安全與信息的版權卻不斷受到威脅.近來,全球各大網站先後遭到黑客攻擊,接著,為了順應新形勢,國內首家有關網絡安全專題的網站(天網安全陣線)www.sky.Net.cn誕生了.網站與網頁的安全性受到越來越多的關注,本文將由淺入深地介紹關於加強網頁安全性的各種技術和技巧,對關心網頁源代碼版權和網頁數據安全保護的讀者有較大的幫助.
初級入門篇
對廣大網頁編寫者來說,對源代碼的保護是最為關注的,但往往卻沒有任何辦法.辛辛苦苦編寫的網頁在浏覽者面前毫無遮掩,只要被別人輕輕點擊鼠標右鍵,選擇(查看源代碼)一項後,即可獲得網頁完全代碼,甚至稍加修改後就成為他人的網頁.本篇將通過采用JavaScript技術,對頁面源代碼的修改,使浏覽者無法獲得源碼,達到保護代碼的目的.
首先,應屏蔽Internet Explorer工具欄中-查看-源代碼一項的功能,即將頁面采用框架結構的方式.若你的頁面並未使用框架結構,且不需使用框架結構,可使用"零框架"技術(即將頁面分為左右兩幀,左幀的寬度為1,右幀為原頁面).該方法的代碼如下:
以下是引用片段:
<Html>
<head>
<title>123456</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,原頁面文件現另存為index.Html(與主文件名僅在擴展名上略有不同).采用零框架技術有以下優點:
1.浏覽者在用工具欄中的源代碼項無法直接得到頁面代碼,僅能得到框架主文件的代碼(即上述代碼).
2.可利用左幀文件ps.htm加載一些網頁的高級應用,如背景音樂,網頁計數器,cookIE應用等.
其次,應屏蔽鼠標右鍵的顯示源文件功能,即在所需保護的頁面文件(上例中為index.Html文件)中加入以下代碼:(當右鍵被點擊時將出現圖1所示提示框)
以下是引用片段:
<script Language="JavaScript">
function click() {
if (event.button==2||event.button==3) {alert(\'"用右鍵要干嘛?"^_^\') }}
//引號中提示可自定義
document.onmousedown=click
</script>
最後,為防止一些了解網頁編寫語言的人通過框架主文件中的連接手工找出被保護頁面後獲得源代碼,還應在被保護頁面中加入以下代碼:
以下是引用片段:
<script language="Javascript">
if(top==self)top.location="index.Html"
</script>
這段代碼將提供跳回功能,使浏覽器無法直接看到該頁,而是自動跳回框架主文件index.Html,起到保護該頁面的作用.
在完成以上三個步驟,對你的主頁按照框架結構進行了修改後,你的主頁源代碼將不能被浏覽者在網上獲得,可以小小慶賀一下了J
另外,若你確實不想用框架頁面,那麼可用特殊的方法打開浏覽器新窗口,再結合屏蔽鼠標的功能代碼後亦可收到同樣的效果,打開方法如下:
以下是引用片
段:
代碼中,key.Html為被保護頁面的文件名.新窗口的高度height與寬度width的值可由用戶自定義,單位為像素.
注意:嵌入式的 JavaScript代碼應加在原文件的元素區內.
中級深入篇
上篇中是采用JavaScript技術達到保護在線網頁的目的.正所謂"強中自有強中手",有些人使用Webzip,TelePro,Offline等離線浏覽器下載你的主頁,就可繞過Javascript保護在線網頁的防線,將網頁下載後再慢慢剖析.有矛必有盾,你亦可用JavaScript建立的動態轉向文件是大多數離線浏覽器無法下載你的網頁,方法如下.你可將上例中的被保護頁面更名為index1.html,而將文件index.Html改為以下代碼:
以下是引用片段:
<script>
window.location.replace(\'index1.Html\') //本句產生網頁跳轉功能
</script>
對Internet Explorer5新增的離線浏覽功能(脫機工作),以上方法有時失靈,可通過對網頁設置cookie的高級技術達到保護的目的.一旦cookIE超期,即使網頁已被下載到本機也無法浏覽,呵呵,厲害吧:)
應加入文件中的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超期時間設置,此處為1天
if(!(visits = GetCookIE("visits")))
visits = 0;
visits++;
SetCookIE(expdate, "/", true, true);
</script>
如果你已經做到這一步了,那麼你的網頁所受到的保護就不再是常規意義上的出於道德觀念或版權意識,而是真正的技術上的保護手段.
高級研究篇
對網頁的保護並不僅僅是涉及源代碼的保護,更應該包含對網頁數據或網絡數據庫的保護.對網絡數據庫的保護可采用基於IIS的CGI接口的認證程序,SQL的安全技術,ASP安全認證程序,Java Applet安全認證程序等手段,屬於更高層次的安全措施,包含大量內容,本文不作介紹.本篇將介紹應用JavaScript技術構造的頁面認證接口.將僅供有限人群訪問的需要數據保護的頁面中加入以下代碼:
以下是引用片段:
<script LANGUAGE="JavaSCRIPT">
<!--
loopy()
function loopy() {
var sWord =""
注意:嵌入式的 JavaScript代碼應加在原文件的元素區內.
代碼中字段sWord的值hibow為登陸被保護頁面的密碼.你可將自定義的密碼告訴允許訪問該頁面的用戶,僅當密碼被正確輸入後浏覽者才可看見頁面內容,否則將循環停留在密碼登入框中(見圖2),進不去喽J
這樣是鎖不住代碼的,只要先點左健不放,再點右健,在放左建,就能看了,如果你的主頁是用ASP,PHP,或者CGI購建的,一般對方是看不到源代碼的。防右鍵的方法已經過時了 還有一個辦法就是把回車全去掉,把整個文件壓縮。這樣看到也看不清楚, 還不影響動行。