保护iFrame - 仅允许它在一个域上工作

Dre*_*rew 11 html security iframe widget

我有一个我创建的小部件,我使用iFrame将其嵌入到其他网站上.我想要做的是确保没有人可以查看源代码并复制iFrame代码并将其放在自己的网站上.

我可以在数据库中存储应该允许的URL.我之前看过它,一个站点有一个很长的加密代码,如果它与域不匹配,那么它说Access拒绝了..

有谁知道我怎么做到这一点?

谢谢!

noo*_*oob 14

不,你不能这样做.你能做的最好的事情如下:

if (window.top.location.host != "hostname") {
    document.body.innerHTML = "Access Denied";
}
Run Code Online (Sandbox Code Playgroud)

将上面的内容添加到JavaScript中,然后使用JavaSript混淆器

  • @Cheekysoft这不适用于跨域网站.它授予权限被拒绝访问firebug中的属性主机 (3认同)

wei*_*yin 8

您无法阻止人们查看您的HTML,但有一些标题可以让您指定哪些网站可以嵌入您的iframe.看看X-Frame-Options标题和frame-ancestors指令Content-Security-Policy.尊重它的浏览器会在嵌入到其他人的网站时拒绝加载iframe.


Dar*_*con 5

在IFRAME中显示的页面代码中的服务器上,检查Referer标头的值.除非出于隐私原因而阻止此标头,否则它将包含承载IFRAME的页面的URL.

  • 当然它可以,但一些任意客户端浏览器不会欺骗.他没有要求阻止人们查看他的来源,他只是想阻止人们将框架放在他们自己的网站上. (6认同)