【发布时间】:2012-04-02 10:59:05
【问题描述】:
我已经使用 cURL 解决方案来解决 XSS,但它存在问题。 我的 proxy.php 文件内容是:-
<?php
$url = "http://www.yahoo.com";
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?>
这就是我尝试执行 php 脚本的方式
$("#tempButton").click(function(){
$("#pageContent").load('http://localhost:8080/proof/proxy.php',function() {
var t = $("#pageContent").html();
alert(t);
});
});
但是变量 t 显示的是 proxy.php 文件的内容,而它应该显示的是在 proxy.php 文件中设置的 yahoo.com 的内容。我在做傻事吗。 #FirstTimePHP
【问题讨论】:
-
从localhost:8080/proof/proxy.php 中删除localhost:8080,它应该只是'/proof/proxy.php'。此外,请检查 firebug 和/或 chromium 检查器以获取错误详细信息。
-
尝试直接访问您的页面(只需浏览到 proxy.php),或使用 Firebug 的 Net 选项卡(或任何等效工具)检查请求的输出
-
您可能没有在您的 Web 服务器中注册 PHP。如果是这样,当您从 Web 访问它时,您永远不会看到放在
<?php ?>标签内的 php 文件的 content。 -
当我从 Web 浏览器看到 proxy.php 时,它实际上向我显示了我的 php 文件的内容,没有别的。它就像一个文本文件,我现在正在使用 tomcat apache 服务器。你能告诉我如何检查 PHP 是否在我的 tomcat 中注册?我想这是每个 Web 服务器的基本功能
-
@JoachimIsaksson 有正确的答案,确保您的 HTTP 服务器正确地提供 PHP 文件。从一个简单的 Hello World 开始。
标签: php javascript jquery curl xss