我已经使用 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
最佳答案
由于变量 t 显示文件的内容,服务器软件一定不能将脚本识别为 PHP。
发生这种情况的原因有多种。没有开始标签就是 1,但你当然有这些。
另一个潜在的原因是 php 尚未作为模块加载到服务器软件中。
另一个潜在的原因是服务器不解析扩展名为 php 的文件(这是可配置的)。
你应该从基础开始。忽略 javascript,而是手动调用 url,看看会得到什么。您很可能会看到代码。
如果确实发生这种情况,请确保服务器软件(通常是 apache)设置为识别与 php 模块关联的扩展名 php。最后确保 PHP 确实正确安装。
关于PHP 脚本没有被执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9975172/