我必须制作一个能够管理用户敏感信息的iFrame。我需要父页面无法从中获取信息。你有什么建议我实现这个目标的?我已经看到了如何混淆我的javascript代码,但它还不够我无法从网站访问某些iFrame值,这些值位于用户将填充的某些字段中。
例如,我尝试制作自己的框架和网络来测试安全性,如果我把它放在网上: iFrameName.document.getElementById(" idTextField&#34)值。 我得到了客户端填写的文本,这就是我想要阻止的内容,让网络无法(或非常困难)获取我在iFrame中的字段数据。
谢谢大家。
顺便说一句,我使用HTML,JS和PHP
答案 0 :(得分:3)
所有现代浏览器都会阻止网站获取不属于它的iframe内容。这是一种防止黑客攻击的安全功能。
例如,如果您登录银行的网站,然后转到包含您在iframe中的银行的其他网站,那么您可能会在iframe中看到该银行页面,但第三方网站仍然无法读取它
此外,您的银行可能甚至不会出现在框架中,因为很多网站(包括StackOverflow)prevent iframes from displaying them。
假设您的iframe与包含的应用不在同一个域中,并且不需要与其他应用进行通信,那么您无需执行任何特殊操作。
如果 需要在不同域中的窗口/框架之间进行通信,则可以使用window.postMessage()
API在它们之间传递数据。通过该API,您可以决定 如何使用这些消息,同时保留对页面的控制权。 (Protip:不要eval
传递的消息。)
答案 1 :(得分:0)
http://javascript.info/tutorial/same-origin-security-policy
由于Javascript中的同源策略,如果两者(父和iFrame)位于不同的域中,则无法访问iFrame。
“因此,iframe.contentWindow.document将是内部文档。 如果iframe和父窗口都来自一个域/主机/端口,则可以访问它或从父窗口进行修改(安全限制将在下一节中详细讨论)。 文字来自:http://javascript.info/tutorial/frames-and-iframes