Php AJAX和代理:用另一个查询加载外国网站?

Php AJAX和代理:用另一个查询加载外国网站?,php,ajax,query-string,Php,Ajax,Query String,所以这是我正在做的一件奇怪的事情。 你们中的一些人已经帮我写了这个脚本: proxy.php <?php if( isset( $_GET['url'] ) ) { # Get the Referred URL $raw = file_get_contents( $_GET['url'] ); # RegExp to Strip All Script tags and/or links with Javascript in them. $safe = preg_replace(

所以这是我正在做的一件奇怪的事情。 你们中的一些人已经帮我写了这个脚本:

proxy.php

<?php
if( isset( $_GET['url'] ) ) {
 # Get the Referred URL
  $raw = file_get_contents( $_GET['url'] );
 # RegExp to Strip All Script tags and/or links with Javascript in them.
  $safe = preg_replace( '/<script[^>]*>.*<\/script>|[\"\']javascript:.*[\"\']/im' , '' , $raw );
  echo $safe;
} else {
  echo 'No URL Set';
}

您必须对在查询字符串中传递的整个URL进行URI编码。可以在JavaScript中使用。

这是一个重大的安全隐患,也是跨站点脚本编写的公开邀请。我强烈建议您找到其他方法来完成您正在尝试的工作,而不是盲目地将另一个页面的HTML输出到您自己的页面中。您的正则表达式不会也不能阻止JavaScript被插入到您的页面中。谢谢您的提示,但我不太明白。那么这是如何工作的呢?我将使用整个uri字符串和两个?在它和编码它!然后我会在服务器端解码得到值$sv.load();您应该对试图检索的整个URL应用URI编码,如下所示:h t t p://www.example.com/?URI=http%3A%2F%2Fwww.remote.com%2F%3Ffoo%3dbar然后如何在我的www.remothe.com网站中获取信息(查询)?我不确定是否理解,您的意思是如何解码URL?如果是这样的话,你可能不必这么做。大多数平台会自动为您解码。因此,代理以及您通过代理请求的URL都应该能够立即工作。