8

X-Hub-Signature在php中验证的正确方法是什么?

我试过了

$xHubSignature = $request->getHeader('X-Hub-Signature');
$postdata = file_get_contents("php://input");
$body = $request->getRawBody( );
$check = sha1('mysecret'.$postdata);

但它不起作用。

4

2 回答 2

14
hash_hmac( 'sha1', $postdata,'mysecret') 

感谢 Payom Dousti

https://groups.google.com/forum/?fromgroups=#!topic/instagram-api-developers/7nKyipJENdI

于 2013-02-25T21:27:43.590 回答
9

要在 PHP 5.6 或更高版本中验证 Instagram 或Facebook webhook 回调X-Hub-Signature发送的标头,您可以使用:

if ( hash_equals('sha1=' . hash_hmac('sha1', $postdata, 'mysecret'), 
                 $_SERVER['HTTP_X_HUB_SIGNATURE'] )

这比使用==or方法要好,===因为它hash_equals可以防止定时攻击

于 2017-07-31T12:06:17.563 回答