關(guān)于網(wǎng)頁源代碼屏蔽(2)
2024-04-27 13:52:52
供稿:網(wǎng)友
 
          那么,有些人就會(huì)想到,如果對(duì)方看不到框架網(wǎng)頁的源代碼。又何談去直接打開被保護(hù)網(wǎng)頁?對(duì),這就是接下來我要講的。如果要一個(gè)頁面的菜單欄內(nèi)的查看源代碼失去效用。那最簡(jiǎn)單的辦法就是去掉菜單欄。而這一點(diǎn)是可以通過彈出窗口來實(shí)現(xiàn)的。之所以不選用超鏈接打開無菜單欄窗口是因?yàn)槟菢訒?huì)暴露目標(biāo)地址,瀏覽者可以直接在瀏覽器中敲入地址,而繞過這個(gè)屏蔽的菜單欄。要使用超鏈接打開無菜單欄窗口,就必須在一個(gè)已受到源代碼屏蔽保障的網(wǎng)頁中使用相關(guān)鏈接。 
  那么,我們就看看如何利用彈出窗口來去掉菜單欄。其實(shí),我們要做的,就是讓目標(biāo)網(wǎng)頁在一個(gè)廣告條中打開。這個(gè)代碼幾乎每個(gè)大型網(wǎng)站都會(huì)有的。代碼如下: 
〈script〉 
〈!-- 
window.open("red.htm", "red", "resizable=yes,width=500,height=300"); 
--〉 
〈/script〉 
  這里,在window.open后的括號(hào)里的第一個(gè)參數(shù)就是彈出窗口所顯示的網(wǎng)頁的位置,這里例子里是先對(duì)位置下的red.htm網(wǎng)頁文件。這時(shí)運(yùn)行便會(huì)談出一個(gè)顯示有red.htm的無菜單欄的窗口。好,我們的目的達(dá)到了。但是,這個(gè)窗口有一個(gè)缺陷,就是沒有滾動(dòng)條。因?yàn)樵谡劤龃翱诘恼Z句:window.open里并沒有關(guān)于滾動(dòng)條的參數(shù),(或是我不知道?歡迎高手來信指出),所以這里打開的網(wǎng)頁建議只做成網(wǎng)頁的導(dǎo)航頁。 
  但是,用以上方法取消菜單欄,必須有一個(gè)第二方的網(wǎng)頁來作彈出的工作。那么,這個(gè)用來彈出窗口的網(wǎng)頁又成為了一個(gè)問題的所在。舉例來說:假設(shè),我們用一個(gè)index.htm來作彈出窗口的工作。也就是打開index.htm之后,會(huì)彈出red.htm的無菜單欄窗口。前面我們也提到了,如果知道了一個(gè)網(wǎng)頁的地址后,無論這個(gè)網(wǎng)頁是否隱藏在無菜單欄之下,你都能看到它的源代碼。那么,不讓這個(gè)red.htm的地址暴露也就成了解決這個(gè)問題的關(guān)鍵。但是,只要這個(gè)index.htm被打開,就可以看到源代碼。但是,不妨反過來想想,如果我們把index.htm給關(guān)起來呢?只要在瀏覽者沒有來得及查看index.htm之前將它關(guān)閉,就能保住它的源代碼了。那么,在這個(gè)index.htm里就有得做些文章了。 
那就是,添加關(guān)閉網(wǎng)頁的代碼。 
  那么,我們就可以用window.close來關(guān)閉窗口。代碼如下: 
〈script〉 
〈!-- 
window.open(); 
--〉 
〈/script〉 
  那么,現(xiàn)在我們把兩部分代碼合并起來。現(xiàn)在,得到的效果就是――直接有一個(gè)無菜單欄的窗口打開了。因?yàn)橛?jì)算機(jī)的處理速度很快,如果我們將這兩段代碼緊接著寫在一起,那么我們就只能看到新建的窗口。代碼如下: 
〈script〉 
〈!-- 
window.open("red.htm", "red", "resizable=yes,width=500,height=300"); 
window.close(); 
--〉 
〈/script〉 
  而原來的窗口,已在我們無察覺的情況下關(guān)閉了。這樣,就別說查看該網(wǎng)頁的源代碼了。這里,加入上面源代碼的網(wǎng)頁起了一個(gè)跳板的作用。但是,在這里,我們要注意幾點(diǎn)。第一,用來做跳板的網(wǎng)頁不應(yīng)該命名為index.htm。將它換一個(gè)名字,然后把默認(rèn)首頁的名字改為更改過的名字。這樣,是瀏覽者能在輸入網(wǎng)之后便自動(dòng)訪問該頁。而又不致讓對(duì)方知道該頁的名稱。如果不這樣做,就會(huì)導(dǎo)致對(duì)方猜測(cè)出該頁的位置。如:172.0.0.0/index.htm。這樣,就可以通過在瀏覽器中提交:View-Source:Http://172.0.0.0/index.htm就可以看到該頁的源代碼了。 
  在屏蔽掉了菜單欄和工具欄之后,我們想,如果沒有了最上方的窗口條該多好呢?下面我們要做的事情,有前提,就是在上面所說的在利用跳板頁面打開一個(gè)無菜單欄的窗口之后。我們要做什么呢?就是讓我們顯示網(wǎng)站內(nèi)容的窗口只顯示內(nèi)容,(是啊,網(wǎng)站不就是給別人瀏覽的嗎?要瀏覽器和windows的那么多功能做什么呀……)只要內(nèi)容,其余一律去掉。我們就可以通過一段javascript來完成。下面這段代碼就是用來定義無任何窗口特征的代碼: 
〈script〉 
function open1(url){ 
newwin=window.open(url,'newwindow','fullscreen=1') 
newwin.resizeTo(800,600) 
newwin.moveTo(screen.width/0-800,screen.height/0-600) 
} 
〈/script〉 
  其中,function open1(url)定義了超鏈接的寫法。所以,我們?cè)趯戞溄拥牡刂窌r(shí),應(yīng)該這樣寫:javascript:open1(url)。比如我要打開一個(gè)無窗口特征的新浪首頁就應(yīng)該在文字或圖片的超鏈接里這樣寫:javascript:open1(‘http:www.sina.com.cn’)。當(dāng)然,括號(hào)內(nèi)也支持相對(duì)路徑。最后寫出來的格式應(yīng)該是: 
〈script〉 
function open1(url){ 
newwin=window.open(url,'newwindow','fullscreen=1') 
newwin.resizeTo(800,600) 
newwin.moveTo(screen.width/0-800,screen.height/0-600) 
} 
〈/script〉 
〈body oncontextmenu=self.event.returnValue=false onselectstart="return false"〉 
〈td width="100%"〉〈a href="javascript:open1('main.htm'),window.close()"〉〈img border="0" src="pic/blank1.gif" style="position: absolute; left: 556; top: 142" width="169" height="57"〉〈/a〉〈/td〉 
〈/body〉 
  這樣,我們就達(dá)到了打開無窗口邊的網(wǎng)頁了。并且,在這個(gè)網(wǎng)頁中,會(huì)自動(dòng)加入滾動(dòng)條,這樣,就不會(huì)像前面那樣看不到下面的內(nèi)容啦。