用php重新创建网站

时间:2012-01-27 09:54:40

标签: javascript php iframe proxy

在学校,网站上有街区。我打算撤消这一点。即使我没有,我也喜欢这个主意。所以:我有一个php页面(source.php)来获取任何站点的源代码(没有跨站点ajax)。

<?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(要插入head标签)

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 个答案:

答案 0 :(得分:1)

您打算编写代理。我认为您应该只使用http://www.phpproxy.net或寻找代理软件并将其安装在您的服务器上。

或者你可以继续做下去。您最终可能会得到一个产品,您将学到很多关于HTTP协议和创建代理的知识。肯定比你在学校学到的还要多。

代理不是非法的,但它可能违反了你的学校规则,假设他们在某处写下了这些规则并且他们没有忘记代理的事情。 :)

答案 1 :(得分:0)

合法吗?当然,您正在查看每个页面上的解释源代码。这并不意味着你的学校不会因为绕过他们的防火墙而鞭打你。

会起作用吗?是的,不是。您将获得源代码,但很可能如果您正在查看被阻止的域,您将无法查看任何图片。你的file_get_contents正在抓取HTML和图片的链接。要获得图片和替换链接,您的PHP脚本必须有点复杂。

答案 2 :(得分:0)

好主意。听起来你只是想要一个代理服务器。

如果他们知道你的PHP服务器正在获取HTML,你真的认为FBI会敲门吗?绝对不。各地的服务器每天都会这样做,例如googlebot。我会说你很清楚。