Задать вопрос
@WorldofMine

Какой смысл в создании сигнатуры API ключа, если API ключ и так известен?

Какой смысл в создании сигнатуры 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, то он может отправлять что угодно, тогда спрашивается смысл такой мудренной проверки, если она не защищает, почему просто первый вариант проверки не использовать?
  • Вопрос задан
  • 451 просмотр
Подписаться 1 Сложный Комментировать
Ответ пользователя Dmitry Bay К ответам на вопрос (3)
kawabanga
@kawabanga
Чуть-чуть не изучили вопрос.

Если вы через уязвимость получите хэши паролей, вы не будете знать первоначальный пароль, верно? и не сможете его использовать в качестве ключа.
При этом вы так же не знаете, как формируется ваш хэш пароля. И в этом случае ,как минимум то, что вводит клиент - неизвестно, если вы не знаете исходный код и не внедряетесь внутрь системы. А мы то знаем, что в 95%+ пользователь использует одни и те же пароли везде. И тут мы сохраняем пароль пользователя до более серъезного взлома.
Ответ написан