首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在页面中加载页面

在页面中加载页面
EN

Stack Overflow用户
提问于 2009-02-19 11:10:35
回答 2查看 1.4K关注 0票数 2

我是PHP和Javascript的初学者。

我发现了一个来自http://cmichaelis.whsites.net/whblog/jquery-extjs-1/example2的链接

在它里面有一段代码说:

代码语言:javascript
复制
function addPanel(location)
{
 tabpanel.add({
       autoLoad: {url: location},
       title: 'More Information...',
       closable:true,
       autoScroll:true
 }).show();
}

使用方法:

代码语言:javascript
复制
<a href="javascript:void(0);"
   onclick="addPanel('loadpage.php?a=http://www.google.com')">
   head over to Google
</a>

我想问的是..loadpage.php的代码是什么?

EN

回答 2

Stack Overflow用户

发布于 2009-02-19 11:37:35

PHP页面不会像另一个答案中建议的那样回显google.com的内容。它输出一个指向Google的iframe:

代码语言:javascript
复制
<iframe src="http://www.google.com" width="100%" height="100%" frameborder="no"></iframe>
票数 1
EN

Stack Overflow用户

发布于 2009-02-19 11:31:27

看起来可以使用loadpage.php通过file_get_contents回显www.google.com的内容。

loadpage.php

代码语言:javascript
复制
<?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的回答是正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/564814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档