这足以保护条带 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 不那么“公开访问”。
我正在尝试从条带中获取有关发生的事件的通知。这是我使用的 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 不那么“公开访问”。