我的应用程序(APP 1)中有一个Webhook,其中另一个我的应用程序(APP 2)需要定期命中,但是我正在考虑安全签名这些请求的方法,以确保该Webhook设置成功仅可通过该应用访问。我想到了以下几点:
但是,我认为这种方法非常基本,因为只要有人掌握了秘密,他们便可以访问端点。应该为此使用某种公共秘密密钥组合吗?有什么建议吗?
答案 0 :(得分:0)
如果系统在相同的后端上运行,或者可以访问相同的数据库或类似数据库,则为每个请求滚动一个新的哈希并将其保存在本地最简单。
这样,就永远不会重用哈希,只有APP1和APP2知道当前的哈希值。
如果系统没有相同的后端,另一种方法是根据两个应用程序都知道的秘密定期生成新哈希:sha256(SECRET + current_time_window),类似于2因子身份验证。
要补充的一点是,如果您使用的是HTTPS和POST请求,则旁观者无法读取该参数。