开发Microsoft Teams选项卡应用安全注意事项
我们都知道,为了方便广大的开发人员快速开发Microsoft Teams选项卡应用,微软提供了一个JS SDK,你可以通过这里 https://docs.microsoft.com/en-us/javascript/api/overview/msteams-client?view=msteams-client-js-latest#:~:text=Microsoft%20Teams%20JavaScript%20client%20SDK%201%20Finding%20the,can%20use%20import%20syntax%20to%20import%20specific%20modules. 了解更多详情。
在这个SDK中,我们经常会用Context对象去获取当前的上下文信息,例如用户信息啦,所在的团队或频道信息等等。

但是这里其实有一个潜在的安全问题:如果这个网页不是在Teams中运行,而是被别有用心的人员在外部套了一个iframe,并且模拟了一个类似的Context对象的话,有可能进行安全方面的攻击。
那么,如果设计一个更加安全的机制,不允许我们的网页被其他系统随意地用iframe嵌入,只允许在Teams中进行嵌入呢?
可以通过X-Frame-options这个服务器选项来控制。请参考 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
但这个选项目前要么设置允许所有域访问,要么设置所有域都不能访问。

第三个选项现在是不推荐使用的,取而代之的是一个新的HTTP Header,叫做CSP, Content-Security-Policy

你需要将如下几个域名加入进去
teams.microsoft.com
*.teams.microsoft.com
*.skype.com *.sharepoint.com
outlook.office.com
and the current host
如果你是用nodejs来开发,现在也有一个简单的做法来实现这样的需求
https://www.npmjs.com/package/express-msteams-host

在具体的代码中,还可以很容易地检测当前是不是在Teams中运行,如下范例代码

开发Microsoft Teams选项卡应用安全注意事项的更多相关文章
- Microsoft Teams 集成 (协作, 沟通 和 行为)
Microsoft Teams 集成 (协作, 沟通 和 行为) 概述 Microsoft Teams是在Office 365中以chat为中心的工作空间.软件开发团队可以快速获得在一个专门的团队协作 ...
- Microsoft Teams 版本与语音落地介绍
我亲爱的小伙伴们,失踪人口回归啦~~ 今天和大家聊的是Microsoft Teams,Teams作为协作的集大成者,可以实现skype for Business的所有功能,还可以在teams里集合Of ...
- 收官之作:利用Microsoft Teams构建中大型社区的技术架构与运营经验
这是我在 精彩又一年:Microsoft Teams技术社区2018年度回顾和展望 活动上面的主题分享,我用Microsoft Teams技术社区的实践经验,给大家整理和分享了技术架构和一些运营经验. ...
- 如何加入Microsoft Teams 技术社区
作者:陈希章 时间:2018-11-19 概述 这个手册适合没有Office 365 账号的用户,你可以使用免费版立即开始使用Microsoft Teams,并且与微软的产品组专家,以及来自两岸三 ...
- [Microsoft Teams]使用连接器接收Azure Devops的通知
1. 什么是连接器 连接器(connector)是Teams中频道的一个接受消息的功能,官方的解释如下: 连接器允许用户订阅来自 web 服务的接收通知和消息. 它们公开服务的 HTTPS 终结点,通 ...
- 微软宣布一批新获得Microsoft Teams认证的会议硬件
COVID-19 疾病流行期间,微软见到了 Microsoft Teams 视频会议解决方案取得的巨大增长.然而在许多情况下,生产力与音视频硬件的质量息息相关.好消息是,该公司刚刚完成了一批第三方硬件 ...
- Microsoft Teams 2021最新功能发布解读 – 会议篇
正在进行的2021年的Microsoft Ignite大会,发布了一系列跟Microsoft Teams相关的新功能,英文介绍请参考 https://techcommunity.microsoft.c ...
- Microsoft Teams 最新功能发布:协作篇
正在进行的2021年的Microsoft Ignite大会,发布了一系列跟Microsoft Teams相关的新功能,英文介绍请参考 https://techcommunity.microsoft.c ...
- 开发环境中biztalk项目设置注意事项(转)
适用版本:biztalk 2006 适用环境:开发测试环境 在开发过程中,在开发环境中,一定会是一个对项目不断的修改.编译.部署.测试,查看测试结果,发现有问题,然后回到开发环境再修改.编译.部署 ...
随机推荐
- GeoMesa Spark
GeoMesa Spark 一.Spark JTS 1.1 示例 1.2配置 1.3 地理空间用户定义的类型和功能 1.4 geojson输出 1.5 Building 二.Spark Core 2. ...
- Golang内建库学习笔记(1)-sort和container
sort库 利用sort.Sort进行排序须实现如下接口 type Interface interface { // 获取数据集合元素个数 Len() int // 如果i索引的数据小于j所以的数据, ...
- eclipse下执行maprdeuc程序报错 java.lang.ClassNotFoundException
最近遇到一个问题,不知怎么突然运行hadoop的map程序报错,困扰了我很久,现在来给大家分享分享.. 错误信息 2017-05-18 21:34:22,104 INFO [main] client. ...
- checkAll操作
//全部勾选 function checkAll(obj) { var cols = document.getElementsByName('cols'); for ( var i = 0; null ...
- linux(7)top命令详细解释
top命令 Linux top命令用于实时显示 process 的动态. top参数详解 第一行,任务队列信息 系统当前时间:13:52:56 系统开机后到现在的总运行时间:up 66 days,8m ...
- C++模板的介绍
作者:良知犹存 转载授权以及围观:欢迎添加微信:Allen-Iverson-me-LYN 1. 模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码.C++模板的作用,类 ...
- Kubernetes-5-2:Harbor仓库的几种高可用方案与搭建
高可用Harbor搭建 思路及介绍 Harbor官方有推出主从架构和双主架构来实现Harbor的高可用及数据备份. 一.主从架构: 说白了,就是往一台Harbor仓库中push镜像,然后再通过这 ...
- CF 1288 E. Messenger Simulator
CF 1288 E. Messenger Simulator 题目传送门 官方题解 题意想必大家都明白了这里就不赘述了,这里只想重点记录一下几种实现方法 分析 设向前移动的序列为\(a\)序列 对于没 ...
- P2617 Dynamic Rankings (动态开点权值线段树 + 树状数组)
题意:带修求区间k小 题解:回忆在使用主席树求区间k小时 利用前缀和的思想 既然是前缀和 那么我们可以使用更擅长维护前缀和的树状数组 但是这里每一颗权值线段树就不是带版本的 而是维护数组里i号点的权值 ...
- 【uva 1617】Laptop(算法效率--贪心,2种理解)
题意:有N条长度为1的线段,要求使每条线段分别在相应区间,且"空隙"数目最小.输出"空隙"数.(1≤N≤100000) 解法:(P.S.我这题竟做了2个多小时, ...