3

有人检查过 Slack 中的传出 Webhook 和 Slash 命令吗?

在 Slash 命令和传出 Webhook 的情况下,命令字符串连同 user_id 和令牌在 POST 正文中发送到外部 URL(对应于命令)。问题是所有团队成员的令牌都保持不变(令牌在集成页面上可见,因此对团队是公开的。端点 URL 也是公开的)。这意味着这是一种针对团队验证请求的机制,但没有针对用户验证请求的机制。

我可以使用相同的标头、令牌和请求正文从不同的服务器复制请求,但使用我的团队成员的 user_id,使其看起来像是其他人执行了该命令。也无法验证请求是否来自 Slack 服务器。

我的问题是 - 我在这里遗漏了什么吗?Slash 命令甚至是用于 CRUD 操作(在外部服务上)还是只是从简单的服务(如天气、堆栈溢出或公共 API)中获取数据?如果没有,你如何解决这个问题?

更新 - 与@SlackAPI 交谈,他们说我们需要单独验证 user_id。

4

1 回答 1

1

这仅适用于您的 Slack 团队的默认权限设置。但是,一旦您限制团队成员对集成的访问,集成的配置(包括令牌)就不再公开。虽然调用 URL 仍然是公开的,但是如果没有令牌,恶意用户将无法重新创建请求。

我建议大多数 Slack 团队出于安全目的限制对集成的访问。您仍然可以根据请求允许访问,这允许您作为管理员审查和批准每个请求。

权限设置可在以下位置找到:

Manage// Permissions=Approved Apps开启

于 2016-10-19T09:13:12.710 回答