【问题标题】:Allow PHP application access only for slack仅允许 slack 访问 PHP 应用程序
【发布时间】:2018-01-08 15:52:21
【问题描述】:

我已经实现了 slack -Jenkins 集成;

使用托管在服务器中的 PHP 应用程序触发 Jenkins 使用参数构建作业。

调用 PHP 应用程序的斜线命令;

PHP 应用程序将通过 REQUEST 方法获取输入,然后调用 Jenkins 作业。

如果有人知道文件名(www.myserver.com/filename.php)并破解了运行时参数(参数),那么他们可以进行部署。通过在 URL 中调用它。

Slack 没有静态 IP。所以IP限制是不可能的。

试过了: RewriteCond %{REQUEST_METHOD} !^POST$ RewriteRule ^/check.php$ - [NC,R=404,L] 在.htaccess 中。 但测试用例失败。

简单地说,只需要允许 PHP 应用程序从 slack

【问题讨论】:

    标签: php jenkins slack slack-api


    【解决方案1】:

    您需要处理每个松弛请求附带的verification token

    验证令牌

    斜线命令、事件 API 交付和交互式消息都有一个共同点:

    Slack 分派一个请求到达您的服务器。您需要一种方法来确定它确实来自 Slack。因此,每个 Slack 应用程序都有一个验证令牌,作为您的应用程序和 Slack 之间的共享密钥。此验证令牌与 Slack 上的任何其他类型的令牌无关。您的应用程序发送到 Slack 的任何 API 操作都不需要它。它的唯一用例是安全地识别来自 Slack 的流量。

    不要将验证令牌与 OAuth 令牌、用户令牌 (xoxp)、机器人用户令牌 (xoxb)、八卦女郎令牌 (xoxo) 或工作区令牌 (xoxa) 混淆。唯一的关系是那个标记词“token”。

    【讨论】:

    • 例如:- token=gIkuvaNzQIHg97ATvDxqgjtO 这是用于 Jenkins 部署的 slack 应用程序的令牌。如何检查它是来自 slack 还是直接在 URL 中传递
    • 令牌是秘密的。您检查它是否与 Slack 应该发送的令牌相同。既然您已公开共享它,您将想要重新生成它。 api.slack.com/slash-commands#validating_the_command
    • @soundararajan.c 验证令牌是请求数组的一部分,每次发出斜杠命令时,Slack 都会将其传递给您的应用程序。来自 Slack 的请求是 POST,因此除非您的应用明确支持,否则不能直接通过 URL 传递。另见documentation
    猜你喜欢
    • 2018-11-12
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 2021-06-03
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多