如何保护第三方 iframe 不被他人使用

3

我正在使用第三方服务(公司X)作为我的应用程序(基于Django)的一部分,该服务位于安全登录后面。来自X的内容通过一个iframe被简单地嵌入到我的页面中。

我花了很多时间在X的应用程序中构建自定义内容(它是一个定制的、交互式的地质工具),而且我与X的订阅价格也不菲。我想防止我的用户之一向其他同事甚至其他公司的用户分享iframe链接,从而甚至无需登录我的应用程序即可使用来自X的内容。

不幸的是,X没有办法通过IP或任何其他类型的链接安全性来限制iframe内容。我知道,听起来很疯狂,但现在就是这样。

最好的方法是什么来构建我的自己的安全解决方案?是否有一种方式可以使用另一个服务器作为中介,这样当客户端打开页面时,我的实时服务器将命中我的中介服务器,中介服务器从X获取内容?然后,只有我才能接受来自我的实时服务器的请求。

2个回答

2
如果公司X在不进行身份验证的情况下提供其服务(任何人都可以在框架中下载它),那么这是他们自己的问题,您无法在代码中真正解决。即使您隐藏实际的iframe URL,只要有链接的人仍然可以使用它。但是您是正确的,至少并非所有访问者都拥有它,如果愿意,可以接受这种风险。
您想法将服务器置于中间,并且您的应用程序仅访问中间件,这确实可以运行。这称为反向代理,任何Web服务器软件(Apache、nginx、IIS等)都可以在不需要太多设置的情况下执行。因此,无需开发,因此设置不是编程问题。
编程问题是此解决方案的安全性。您需要注意的是,虽然这将从用户中隐藏iframe url,但该url仍将有效,并且对于任何人均可使用,这是公司X服务的问题。此外,您需要在反向代理服务器上进行身份验证,否则新的iframe url可以像原始的一样轻松复制。
还要注意,反向代理具有许多嵌入式资源和JavaScript的复杂网站可能会有缺陷。根据实际内容,真实来源有时可能会向用户披露。

0

2
但这应该在X公司的服务上设置,@acandroid显然无法做到。 - Gabor Lengyel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接