其次,应屏蔽鼠标右键的显示源文件功能,即在所需保护的页面文件(上例中为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
另外,若你确实不想用框架页面,那么可用特殊的方法打开浏览器新窗口,再结合屏蔽鼠标的功能代码后亦可收到同样的效果,打开方法如下:
<a href=
javascript:window.open("key.html","被保护页面的标题","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>打开被保护页面的连接</a>
代码中,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 =""
while (sWord != "hibow") {
sWord = prompt("输入正确密码登陆! ")
}
alert("身份识别......允许登陆")
}
//-->
</script>
注意:嵌入式的 JavaScript代码应加在原文件的元素区内.
代码中字段sWord的值hibow为登陆被保护页面的密码.你可将自定义的密码告诉允许访问该页面的用户,仅当密码被正确输入后浏览者才可看见页面内容,否则将循环停留在密码登入框中(见图2),进不去喽J
这样是锁不住代码的,只要先点左健不放,再点右健,在放左建,就能看了,如果你的主页是用ASP,PHP,或者CGI购建的,一般对方是看不到源代码的。防右键的方法已经过时了 还有一个办法就是把回车全去掉,把整个文件压缩。这样看到也看不清楚, 还不影响动行。