Instagram如何在php中验证X-Hub-Signature

时间:2013-02-20 09:05:21

标签: php

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

我试过

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

但它不起作用。

1 个答案:

答案 0 :(得分:7)

要验证Instagram或{+ 3}}在PHP 5.6或更高版本中发送的X-Hub-Signature标头,您可以使用:

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

这比使用=====要好,因为hash_equals方法会阻止计时攻击