2012-01-27 122 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

是的,当然我增加了更多的代码。我可以在标签后面加上