使用浏览器检查iframe内容后,使用jquery访问iframe内容

时间:2017-10-18 14:04:49

标签: jquery same-origin-policy

今天发生了一件奇怪的事情,正在测试我正在开发的网站:我试图通过jquery访问iframe中的元素,令我惊讶的是我能够访问它们并修改它们。令人惊讶的是因为iframe不在同一个域中,因此我不应该为"相同的原始策略" (或者我错了?)。

事情是,它只能在"检查"之后完成。浏览器中的任何iframe元素(在本例中为chrome)。如果以后我会检查"任何不在iframe内部的网站元素,那么我就失去了#34;超级大国"并获得预期的结果,即由于"相同的原始政策"而不允许访问jquery。

问题: 那应该发生吗? 2.-如果它可能意味着安全风险,有没有办法防止它? 3.-如果这是假设发生并且是安全的,我怎么能jquery"模拟"浏览器"检查"这样我就可以访问iframes元素并修改它们

1 个答案:

答案 0 :(得分:0)

当您检查iframe(在Chrome上测试)时,它会自动将控制台的上下文设置为iframe的上下文。因此,您可以直接在iframe的内容上运行任何javascript。但是它无法从父级别(iframe被实例化)访问它,因为这样的行为可能被视为安全漏洞。

以下是您尝试访问父上下文时的示例(在这种情况下,父级是jsfiddle' s iframe,您可以在左上角看到): Accessing from parent context

然后当我将上下文切换到我试图访问的iframe时: Accessing from the iframe's context

希望这总结了答案,并可以帮助其他可能有类似问题的人。

相关问题