这足以保护条带 webhook 端点吗?

Is this enough to secure stripe webhook endpoint?

我正在尝试从条带中获取有关发生的事件的通知。这是我使用的 webhook 端点。 URL 必须公开访问。当考虑安全性时,这是否足够或我应该使用任何其他方法?

    [HttpPost("WebHook/{id}")]
    public async Task<IActionResult> WebHook(int id)
    {
        var json = await new StreamReader(HttpContext.Request.Body).ReadToEndAsync();
        Event stripeEvent;
        try
        {
            //Get webhook secret 
            string webHookSecret = XXXX;

            //Construct stripe Event
            stripeEvent = EventUtility.ConstructEvent(
                json,
                Request.Headers["Stripe-Signature"], 
                webHookSecret
            );
        }
        catch (Exception ex)
        {
            LoggingUtil.LogError(ex, ex.Message);
            return BadRequest();
        }
  }

仅靠 webhook 签名验证是不够的,因为 Stripe 使用具有共享秘密的消息身份验证而不是非对称加密数字签名。如果你没有构建防弹服务器的偏执意图,你可以从 Stripe's security recommendations. Trivial IP address filtering 开始可以让你的 URL 不那么“公开访问”。