从在iframe中打开的topdesk网站获取身份验证

时间:2020-03-18 10:12:06

标签: api

我有一个topdesk面板,并通过url连接了外部网站,因此我的网站是在topdesk的iframe中打开的。

我的任务是从topdesk登录用户(至少是其电子邮件)。 到目前为止,我已经找到了这个api:https://developers.topdesk.com/explorer/?page=supporting-files#/Persons/getLoggedInPerson

但是它需要从登录名/密码获取身份验证密钥,但我不从UI端使用用户登录名/密码。

因此,我看不到任何简单的解决方案,但是也许我可以通过某种方式从父桌面视图或类似的视图中获取Cookie。

1 个答案:

答案 0 :(得分:2)

您试图做的事是不可能的,因为这将是一个巨大的安全漏洞。如果您能够进入iFrame并与嵌入式文档进行交互,或者从嵌入式页面转到其父级并与其文档进行交互(例如,检索会话cookie,读取页面的内容等),它将变得非常容易接管某人的会话并进行恶意操作。

例如,作为恶意行为者,我可以在加载TOPdesk的网站上放置一个小型iFrame。如果您已经登录到TOPdesk,则也将登录到我网站上的iFrame中。如果我能够与该iFrame中的cookie进行交互,则可以检索您的会话cookie并模拟您。

因此,您只能在此级别上与起源相同的iFrame(也称为Same origin policy)进行交互。

但是,即使您来自同一来源,您仍将无法读取TOPdesk的会话cookie,因为它们已设置为HttpOnly。这意味着Cookie只能由浏览器本身使用,不能与JavaScript进行交互。

因此,对我来说,您似乎唯一的选择是通过应用程序密码以正式方式与API交互。但是,您要实现的目标可能无法实现。您能否进一步介绍一下用例?

相关问题