我可以从父页面验证 iFrame 页面吗?
Posted
技术标签:
【中文标题】我可以从父页面验证 iFrame 页面吗?【英文标题】:Can I authenticate an iFrame page from the parent page? 【发布时间】:2011-05-08 18:04:18 【问题描述】:我有一个简单的 html 页面,它可以在几个状态页面中循环显示,这些页面显示在校园周围的几台电视上。我会定期更新页面和链接。很多时候页面需要验证。远程到终端提供凭据是一件痛苦的事。有些是 HTTP 身份验证,有些是基于 <form>
的身份验证嵌入到站点中。很多时候,我可以通过发布正确凭据的 HTML 和 javascript 绕过基于 <form>
的身份验证。
有没有更好的出行方式
基于<form>
的身份验证
从主机页面? (下)
有什么办法可以绕过 基于服务器/HTTP 的身份验证 从主机页面,而不必 手动验证 显示?
<form>
身份验证是指<form>
操作会生成会话 cookie?
(mikerobi,感谢您的评论)
这是主机页面的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>
Important Stuff
</title>
<script src="/scripts/jquery.js" type="text/javascript"></script>
<style type="text/css">
html, body, iframe margin:0; height:100%;
iframe display:block; width:100%; border:none;
</style>
<script type="text/javascript">
var link = new Array();
link[0] = "http://mycompany.intranet/";
link[1] = "http://mycompany.intranet/weather.htm";
link[2] = "http://mycompany.intranet/systemstatus/";
var linkIndex = 0;
setInterval("doSomething()", 10000);
function doSomething()
if (linkIndex >= link.length)
// reload in case the page has been updated
window.location.reload();
$("#frame").attr("src", link[linkIndex]);
linkIndex++;
</script>
</head>
<body>
<iframe id="frame" src="http://mycompany.intranet/"></iframe>
</body>
</html>
【问题讨论】:
什么是基于<form>
的身份验证?表单操作是否生成会话 cookie?
【参考方案1】:
我没有看到您发送基于 POST 登录凭据的代码,但如果您使用 JavaScript 自动提交表单(使用其 .submit()
方法),那可能是最好的方法.请记住,HTML 表单的 target
属性允许您在不同的窗口(或者在您的情况下,iframe)中提交表单 - 只需为 iframe 提供 name="xyz"
属性并为表单使用 target="xyz"
.该表单将位于主机页面中,并且可以使用 CSS display: none
隐藏。
您可以在 URL 中包含 HTTP 基本身份验证用户名和密码,例如:http://username:password@www.example.com/path
。请注意,当前的网络浏览器在其默认配置中可能不允许这样做,以防范特定的网络钓鱼技术,您可能必须通过编辑 Windows 注册表或存储网络浏览器设置的其他位置来change the configuration。
【讨论】:
谢谢! #1 我正在做 #2 我一直在尝试,但没有成功,但至少我现在明白为什么了。以上是关于我可以从父页面验证 iFrame 页面吗?的主要内容,如果未能解决你的问题,请参考以下文章