我将建立一个演示附属网络,这需要被保护。假设我有一个名为“附属网络管理器”的web应用程序,它管理与我的在线书店相关的所有分支机构。
“代销商网络管理器”提供了一个API,使出版商的网站(附属网站)能够获取书店网站的徽标,从而可以在出版商的网站上显示书店徽标。
让我们假设以下场景:有一个发布者网站A,具有唯一的ID 123。最终用户访问网站,点击徽标,被重定向到在线书店并购买一本书。系统从请求中获取唯一ID,并知道此请求来自publisher A。然后,它会记住客户端从publisher A访问书店,所以publisher A根据事务的数量收取佣金。
这是可行的,但存在一个安全问题:假设我们有另一个发布者B,具有唯一的ID 456。然后,publisher B的攻击者可以捕获publisher A的请求,并将唯一ID更改为456。因此,B出版商将获得A出版商的佣金。
如何解决此安全问题,并确保在发送请求时攻击者无法更改唯一ID?或者换句话说:在这种情况下,我如何进行身份验证?
发布于 2014-04-17 12:56:36
当我正确理解您时,附属公司在其网站上添加了与HTML代码类似的横幅:
<a href="http://example.com/store.php?UniqueID=123"><img src="http://example.com/banner.png"></a>您的攻击场景是,当访问者单击该横幅时,MITM将访问者请求中的UniqueID替换为另一个。
要想从利用附属网络中获得可观的收入,就必须能够在大量的连接上播放MITM。当攻击者无法控制访问者和服务器之间的任何网络基础设施时,中间人攻击已经很难执行。所以你提出的方案不太可能,除非其中一个分支机构也是一个拥有大量犯罪能量的ISP。
但是,即使攻击者完全控制了连接,当您使用TLS时,也几乎不可能执行MITM攻击。因此,只需要求您的子公司链接回您的书店使用HTTPS-链接,而不是HTTP。当你有一个在线商店,你应该支持TLS无论如何。
<a href="https://example.com/store.php?UniqueID=123"><img src="http://example.com/banner.png"></a>发布于 2014-04-17 06:54:09
基本上你需要做的是:
您可以在每个发布者的网站和使用此方法在HTTPS连接上验证它们.上安装X.509证书。然而,这似乎并不常见。
我建议对OAuth 2.0标准做一些研究。它解决了这两个问题,并且大多数web应用程序框架都存在软件库。
https://security.stackexchange.com/questions/56016
复制相似问题