- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个网站,假设它们是 example.com
和 anotherexample.net
.
上 anotherexample.net/page.html
, 我有一个 IFRAME SRC="http://example.com/someform.asp"
. IFRAME 显示一个表单供用户填写并提交到 http://example.com/process.asp
.当我在自己的浏览器窗口中打开表单(“someform.asp
”)时,一切正常。
然而,当我加载 someform.asp
作为 IE 6 或 IE 7 中的 IFRAME,example.com 的 cookie 不会被保存。 在 Firefox 中不会出现这个问题。
出于测试目的,我在 http://newmoon.wz.cz/test/page.php 上创建了一个类似的设置.example.com
使用基于 cookie 的 session (我对此无能为力),因此没有 cookie,process.asp
不会执行。 如何强制 IE 保存这些 cookie?
嗅探 HTTP 流量的结果:在 GET/someform.asp 响应中,每个 session 都有一个有效的 Set-Cookie header (例如 Set-Cookie: ASPKSJIUIUGF=JKHJUHVGFYTTYFY
),但在 POST/process.asp 请求中,根本没有 Cookie header 。
Edit3:一些 AJAX+服务器端脚本显然能够回避这个问题,但这看起来很像一个错误,而且它打开了一组全新的 security holes .我不希望我的应用程序仅仅因为它很容易就使用错误+安全漏洞的组合。
编辑: P3P 政策是根本原因 ,完整解释如下。
最佳答案
我让它工作了,但解决方案有点复杂,所以请耐心等待。
发生了什么
实际上,Internet Explorer 对 IFRAME 页面的信任级别较低(IE 将此称为“第三方”内容)。如果 IFRAME 内的页面没有隐私政策,则其 cookie 将被阻止(由状态栏中的眼睛图标指示,当您单击它时,它会向您显示被阻止的 URL 列表)。
(来源:piskvor.org)
在这种情况下,当 cookie 被阻止时,不会发送 session 标识符,并且目标脚本会抛出“找不到 session ”错误。
(我已经尝试将 session 标识符设置到表单中并从 POST 变量加载它。 这本来可以工作 ,但出于政治原因我不能这样做。)
可以使 IFRAME 内的页面更受信任:如果内页发送带有 IE 可接受的隐私策略的 P3P header ,则 cookie 将被接受 .
如何解决
创建 p3p 策略
一个好的起点是 W3C tutorial .我已经看完了,下载了IBM Privacy Policy Editor在那里我创建了隐私政策的表示,并给了它一个名称以引用它(这里是 policy1
)。
注意 :此时,您实际上需要了解您的网站是否有隐私政策,如果没有,则创建它——它是否收集用户数据、什么样的数据、它用它做什么、谁可以访问它等等. 你需要找到这些信息并考虑一下。 只是将几个标签拍打在一起不会削减它。 这一步不能完全在软件中完成,并且可能是高度政治化的(例如“我们应该出售我们的点击统计数据吗?”)。
(例如“该网站由 ACME Ltd. 运营,它使用匿名的每 session 标识符进行运营,仅在明确允许的情况下收集用户数据并且仅用于以下目的,仅在必要时存储数据,仅我们公司可以访问它,等等。”)。
(使用此工具进行编辑时,可以查看策略中的错误/遗漏。“HTML 策略”选项卡也非常有用:在底部,它有一个“策略评估”——快速检查策略是否会被阻止通过 IE 的默认设置)
编辑器导出为 .p3p 文件,这是上述策略的 XML 表示。此外,它还可以导出此策略的“压缩版本”。
政策链接
然后需要一个政策引用文件( http://example.com/w3c/p3p.xml
)(网站使用的隐私政策索引):
<META>
<POLICY-REFERENCES>
<POLICY-REF about="/w3c/example-com.p3p#policy1">
<INCLUDE>/</INCLUDE>
<COOKIE-INCLUDE/>
</POLICY-REF>
</POLICY-REFERENCES>
</META>
<INCLUDE>
显示将使用此策略的所有 URI(在我的情况下,是整个站点)。我从编辑器导出的策略文件已上传到
http://example.com/w3c/example-com.p3p
HTTP/1.1 200 OK
P3P: policyref="/w3c/p3p.xml", CP="IDC DSP COR IVAi IVDi OUR TST"
// ... other headers and content
policyref
是策略引用文件(反过来引用隐私策略)的相对 URI,
CP
是紧凑策略表示。
请注意,示例中的 P3P header 组合可能不适用于您的特定网站;您的 P3P header 必须如实代表您自己的隐私政策!
STP
但没有保留政策,您可能在实现欺诈。这有多酷?一点也不.) 关于internet-explorer - Cookie 在 Internet Explorer 的 IFRAME 中被阻止/未保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/389456/
所以我知道,如果我将 iFrame 包含到不在同一域中的页面,我将无法通过浏览器策略访问该 iframe 的 DOM,但是 iframe 中的页面可以执行任何类型的父文档访问吗? 具体来说,我必须考虑
我有 3 个嵌套的 iframe,我想访问第三个 iframe 中的元素(链接)。 var iframe = document.getElementById('aswift_2'); var inne
Chrome 有最简单的方法,只需从下拉列表中选择一个框架即可。 Firefox 提供了 cd(frame)功能不太好用,但只要您愿意发现哪个框架是哪个框架就可以完成工作。 但是我们如何在 Inter
我们公司正在考虑允许第三方网站使用我们的在线结账系统。 一位客户表示,他们希望能够使用灯箱样式的弹出窗口来显示结帐。他们希望在网站的每个页面上都可以使用它,因此大多是不安全的页面。我们的结帐系统和客户
当 iframe 中加载的页面来自另一个域时,我们如何从 iframe 中加载的文档访问父文档? 我收到权限被拒绝错误。 最佳答案 如果您可以控制这两个文档,那么您可以轻松地使用 easyXDM (
使用 SOAP 调用我得到一个 URL 并在 iframe 中显示。那个 URL 内容是一个表单,用户需要填写所有数据并提交它。当我调用 SOAP 函数时,也给出了一个返回链接,其中一个重定向到我的站
我正在尝试开发一个小型 Web 应用程序,其中包含一个使用来自另一个域的 iframe 的 Web 应用程序。我正在尝试在本地计算机上对此进行测试,为此我需要模仿 iframe 来自另一个域(虽然它实
我有一个网页 指向另一个网站。我不希望这阻止页面其余部分的加载。有没有办法异步加载它? 最佳答案 使用 jQuery,可以实现以下效果: $(window).load(function() {
我搜索过高低,无法找到解决方案。在我看来,iframe API仅适用于较旧样式的网址,而不适用于较新的海关网址。 我的意思是,如果某人的YouTube网址为www.youtube.com/user/T
我想在我的网站上显示youtube视频。 iframe是可能的,我只需要像这样将其放在我的网页上。 一切都很好,除了我超过99%的客户来自伊朗,而且YouTube在伊朗被政府封锁。因此,直接从you
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
所以我有一个简单的页面,当用户单击链接时,iframe 将打开。我正在尝试使用 http://www.google.com/support/analytics/bin/answer.py?hl=en&
假设情况:我有一个名为“miniatureBoltsInCarburetors.com”的不起眼的小网站,该网站提供有关将化油器固定在一起的微型 bolt 的内容以及一些一般相关的汽车信息。我的网站还
IE 6.0 向我显示消息“此页面包含安全和非安全项目”,因为我的页面上有 iframe(针对组合框错误)。我尝试指向 src 中的一些不同的内容,但如果不放入空白的 html 页面,我似乎无法摆脱此
我有一个带有一个 iframe 和一个按钮的网页。 在页面加载事件中, if (!Page.IsPostBack) { string sDocUrl = //some doucmen url Ifra
我有一个带有一些 IFrame 的页面。这些 IFrame 位于同一域中。我想在打开模态窗口时从页面中删除 iframe 内容,以减少模态窗口中的延迟。 然后,当我关闭模态窗口时,我希望将 IFram
我正在尝试访问一个框架内的控件,该框架位于另一个框架内的框架内。 最后(最深的)框架仅用于登录 - 我设法做到了。 问题是登录后我基本上需要回到上框点击一个按钮。出于某种原因,我不断收到错误消息: N
我有下一个元素结构: .. actual markup with scripts here 使用纯 javascript,我已经摆脱
我们使用 Worldpay 作为我们的支付提供商,我们将 PayPal 作为 worldpay 的一部分实现,这意味着我们只与 Worldpay 集成,他们处理 PayPal 集成。 虽然这会带来很多
我有一个客户,由于特定原因,需要在 HTTP 页面上放置一个指向 HTTPS 页面的 IFRAME。 HTTP 页面托管在与 HTTPS 页面不同的域和服务器上,但都属于同一客户端。 撇开为什么不应该
我是一名优秀的程序员,十分优秀!