检测浏览器iframe与Office加载项中的本机应用

时间:2017-04-26 19:26:45

标签: office-js outlook-web-addins

我正在编写一个Outlook加载项,并且正在实现clickjacking protection,方法是在用户完成加载项中的潜在危险操作之前向用户显示一个确认弹出窗口。

但是,当我的加载项在浏览器外部运行时,似乎没有必要显示这些弹出窗口(例如,在Outlook for Mac或Outlook 2016中)。

有没有办法检测我的加载项是在浏览器中运行而不是在本机应用程序中运行?我考虑过检查用户代理,但这看起来有点脆弱。

编辑:这与Trusted way to get the host origin of an Office add-in不是同一个问题,因为这个问题是关于加载项是否完全是iframed,而iframed是Trusted way to get the host origin of an Office add-in中的起始假设之一。 / p>

2 个答案:

答案 0 :(得分:3)

https://dev.outlook.com/reference/add-ins/Office.context.mailbox.diagnostics.html#hostName

HostName应为:Outlook,Mac Outlook,OutlookIOS或OutlookWebApp

答案 1 :(得分:0)

您可以使用OfficeJsHelpers检测平台信息(在线与PC与Mac等),如In Excel Online, OfficeJS API is not passing the host_Info_ parameter anymore to Excel Add-In

中所述

话虽如此,如果您关注的是恶意主机,他们也可以伪造该行为,以确定浏览器实际上是在PC版Office上运行的加载项。