首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Laravel中正确地创建一个签名的webhook结构?

如何在Laravel中正确地创建一个签名的webhook结构?
EN

Stack Overflow用户
提问于 2018-08-30 22:13:29
回答 1查看 119关注 0票数 2

我的应用程序(APP 1)中有一个网络钩子,我的另一个应用程序(APP 2)需要定期点击,但我正在考虑如何安全地签署这些请求,以确保web钩子端点只能通过该应用程序访问。我想到了以下几点:

  • 将秘密散列保存在APP1的env中,并在APP2发送的每个请求中添加要比较的特定头中的散列。

然而,我觉得这种方法是相当基本的,因为如果有人掌握了这个秘密,他们就能够访问端点。应该用某种公开的密匙组合来实现吗?有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2018-08-31 04:48:10

如果系统在相同的后端上工作,或者访问相同的数据库或类似的数据库,那么为每个请求提交一个新的散列并在本地保存是最容易的。

  1. APP1生成哈希并将其存储在文件~/secret_app_散列中。
  2. APP2读取文件~/保密_app_hash并使用此param发送请求
  3. APP1收到HTTPS请求,根据该文件验证散列。
  4. APP1生成一个新的哈希..。基本上回到第一步

这样,哈希就不会被重用,只有APP1和APP2知道当前的哈希值。

如果系统没有相同的后端,另一种方法是根据两个应用程序都知道的秘密周期性地生成一个新的散列:sha256(秘+ current_time_window),类似于一个2因子的哈希。

一个附加的注意事项是,如果您正在使用HTTPS和POST请求,那么param对于旁观者来说是不可读的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52106046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档