html - 如何保护在别处使用的第三方 iframe

标签 html django security iframe business-logic

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

我花了很多时间在 X 的应用程序(这是一个自定义的交互式地质工具)中构建自定义内容,而且我对 X 的订阅也很昂贵。我想防止我的一个用户与其他同事或什至其他公司的用户共享 iframe 链接,甚至无需登录我的应用程序就可以简单地使用我在 X 中的内容。

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

构建我自己的安全解决方案的最佳方式是什么?有没有办法使用另一台服务器作为中介,以便当客户端打开页面时,我的实时服务器会访问我的中介服务器,后者从 X 获取内容? 然后,我是唯一一个在我的中间服务器上接受来 self 的实时服务器的请求的人。

最佳答案

如果 X 公司提供未经身份验证的服务(任何人都可以在一个框架中下载它),这对他们来说是一个问题,您将无法在您的代码中真正修复。即使您隐藏了实际的 iframe 网址,它仍然适用于拥有该链接的任何人。但你是对的,至少不是所有的访问者都会有它,这可能就足够了,如果你愿意,这是一个可以接受的风险。

您的想法是在中间放置一个服务器,而您的应用程序只访问临时服务器,这实际上可行。这称为反向代理,任何 Web 服务器软件(Apache、nginx、IIS 等)无需太多设置即可完成。因此不需要开发,因此设置它不是编程问题。

什么是编程问题是该解决方案的安全性。您需要注意,虽然这会向您的用户隐藏 iframe url,但该 url 仍然有效并且适用于任何人,这是 X 公司服务的问题。此外,您还需要在反向代理服务器上进行身份验证,否则新的 iframe url 可以像原始 url 一样被复制。

另请注意,对具有大量嵌入式资源和 javascript 的复杂网站进行反向代理会有其缺陷。根据实际内容,有时可能会向您的用户披露真实来源。

关于html - 如何保护在别处使用的第三方 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48374643/

相关文章:

html - 显示 : inline along with float: left

html - 如何在图像和文本之间创建一条水平线

Django - 根据当前页面突出显示导航?

java - 如何使用过滤器进行输出编码来防止XSS?

html - 相对位置不适用于动态菜单的显示表格单元格?

python - 如何扩展使用 AbstractBaseUser 创建的现有自定义用户模型以拥有多种用户类型,例如客户、培训师和作者?

python - 将自定义字段添加到默认用户模型 - 如果扩展它,我应该进行迁移吗?

asp.net-mvc - AntiForgeryToken 重用

javascript - Web 服务和 phonegap : best practices

html - 图像不居中 Bootstrap center-block