2012-01-27 117 views
-2

在學校中,網站上有塊。我打算取消這一點。即使我不這樣做,我也喜歡這個主意。所以:我有一個PHP頁面(source.php)來獲取任何網站的源代碼(沒有跨站點AJAX)。使用php重新創建網站

<?php 
    echo file_get_contents(urldecode($_GET["url"])); 
?> 
<script> 
    if(document.getElementsByTagName("base")[0]) 
    document.getElementsByTagName("base")[0].href="<?php echo $_GET["url"] ?>"; 
    else 
    document.head.appendChild(document.createElement("base").href="<?php 
    echo $_GET["url"] ?>"); 
</script> 

簡單。這裏是index.html的

<html><head><title>Unblocker</title></head><body> 
<div width="100%" height="10%"> 
<form onsubmit="return go()"> 
<input id="url" value="http://www.google.com/"> 
<input type="submit" value="Go"> 
</form> 
</div> 
<div width="100%" height="90%"> 
<iframe src="http://www.google.com/" width="100%" height="100%" id="frame"> 
</iframe> 
</div></body></html> 

現在的JavaScript(被插入頭部標籤)

function go(){ 
    url=document.getElementById("url").value; 
    frame=document.getElementById("frame"); 
    //do some url validations, not posting cause doesn't matter 
    if(url.isValid)//example 
     frame.contentWindow.location=location.protocol+"//"+location.hostname+"/ 
     source.php?url="+url; 
    return false;//to prevent page reload 
} 

幾件事情:首先,這是合法的,同時整個源代碼,並顯示他們儘管我的意圖好?此外,它會工作,還是有什麼明顯的,可以使它更好?我知道服務器端不能被過濾(假設這個站點沒有被阻止!)。我知道這是非常有限的,但我可能能夠擴大它,以允許點擊鏈接和所有。

+3

爲什麼不只是使用代理服務去查看網站? – Nick 2012-01-27 09:56:36

+2

這是你需要用編碼實現的東西嗎?你不只是使用公共代理服務器,只是配置瀏覽器使用它? http://www.publicproxyservers.com/ – 2012-01-27 09:57:55

+1

你真的對合法性感到困擾,因爲你說你的整個目的是爲了規避某人的規則? – DaveRandom 2012-01-27 10:04:01

回答

1

你打算寫一個代理。我認爲你應該簡單地使用http://www.phpproxy.net或尋找代理軟件並將其安裝在你的服務器上。

或者你可以繼續做下去。你可能會得到一個產品,並且你會學到很多關於HTTP協議和創建代理的知識。當然比你在學校學到的還要多。

代理不是非法的,但它可能違反你的學校規則,假設他們有某些規則寫下來,並且他們沒有忘記代理的事情。 :)

+0

phproxy將被阻止,因爲它有很多次這個詞「代理」,或者我將不得不刪除它所有。另外,製作東西很有趣。 – yourface 2012-01-30 14:55:12

0

它合法嗎?當然,您正在每一頁上查看解釋的源代碼。這並不意味着你的學校不會因爲規避防火牆而鞭you你。

它會工作嗎?是和不是。您將獲得源代碼,但最有可能的是,如果您正在查看被阻止的域,您將無法查看任何圖片。您的file_get_contents抓取圖片的HTML和鏈接。要獲得圖片並替換鏈接,您的PHP腳本必須有點複雜。

+0

是的,當然我增加了更多的代碼。我可以在標籤後面加上