Какой смысл в создании сигнатуры API ключа, если API ключ и так известен?
Ну например, мы создали API ключ: 1234567890, дали его человеку чтобы он им пользовался.
При запросе просто проверяем этот ключ:
if($_GET['apikey'] !== '1234567890'){
die( 'Die Die Die' );
}
//some code
Зачем делать все эти хэши, md5, sha и т.д. ключа, если он известен и можно сделать простую проверку?
Допустим, человек использует сигнатуру с проверкой, приходит запрос типа: url?key=32432432&usrid=100&email@test.ru&status=update
В скрипте, проверяем эту сигнатуру так:
$siganture = sha1($key.'|'.$usrid.'|'.$email);
if($siganture !== $secret_pass) {
die( 'Die Die Die' );
}
//some code
Получается что вторая проверка один в один что и первая где сразу сверяется ключ, но только с лишними действиями с проверкой сигнатуры.
Но если любой человек узнает строку API Запроса: url?key=32432432&usrid=100&email@test.ru&status=update, то он может отправлять что угодно, тогда спрашивается смысл такой мудренной проверки, если она не защищает, почему просто первый вариант проверки не использовать?