我是PHP和Javascript的初学者。
我发现了一个来自http://cmichaelis.whsites.net/whblog/jquery-extjs-1/example2的链接
在它里面有一段代码说:
function addPanel(location)
{
tabpanel.add({
autoLoad: {url: location},
title: 'More Information...',
closable:true,
autoScroll:true
}).show();
}使用方法:
<a href="javascript:void(0);"
onclick="addPanel('loadpage.php?a=http://www.google.com')">
head over to Google
</a>我想问的是..loadpage.php的代码是什么?
发布于 2009-02-19 11:37:35
PHP页面不会像另一个答案中建议的那样回显google.com的内容。它输出一个指向Google的iframe:
<iframe src="http://www.google.com" width="100%" height="100%" frameborder="no"></iframe>发布于 2009-02-19 11:31:27
看起来可以使用loadpage.php通过file_get_contents回显www.google.com的内容。
loadpage.php
<?php
// Simplified output - should sanitise $_REQUEST params etc first..
echo file_get_contents($_REQUEST['a']);
?>loadpage有效地充当了一个代理,允许您的javascript调用不在您自己域中的页面。
正如@annakata在评论中指出的那样,上面的代码非常危险。该代码演示了代理文件背后的基本思想-在生产中,该文件需要确保$_REQUEST参数已被清理,例如只接受来自白名单的值。
same origin policy是javascript的安全元素,它阻止您使用javascript将域外的内容拉到您的页面上。
一些网站通过调用它们自己的服务器上的代理页面(在这个例子中是loadpage)来绕过这个问题,它实际上只是打印出目标url的内容。由于此代理页面位于您的服务器上,因此绕过了同一来源的安全问题,并且仍然可以使用来自另一个域的页面内容-这里是www.google.com
哦,我有点愚蠢地没有RTFA,而只是问题中的代码,并假设它可以做什么。关于Q中链接的页面实际在做什么,@andynormancx的回答是正确的。
https://stackoverflow.com/questions/564814
复制相似问题