Безопасное использование обратного URL
Надеюсь, этот вопрос не слишком наивен...
Я пытаюсь реализовать API Giving Lab, чтобы пользователи моего сайта могли пожертвовать на благотворительность.
Используя URL-адрес такой:
пользователь перенаправляется на страницу пожертвования и затем возвращается в returnURL после того, как пожертвование было сделано.
Я хочу добавить, сколько пользователь пожертвовал моим базам данных, если они успешно завершили платеж. Можно ли использовать returnURL для этого? Т.е. могу ли я использовать returnURL в форме mywebsite.com?q="amount_donated", а затем использовать это для обновления моих баз данных?
Я вижу, что это позволило бы кому-то обновить мои базы данных, просто введя returnURL в свой браузер.
Есть ли вообще лучший метод, который устраняет эту проблему?
Большое спасибо.
1 ответ
Голландские банки используют то, что называется sha-sign (и они, вероятно, не первые)
Все, что вам нужно сделать, это добавить ключ, который может знать только вы:
function makeSecureCode($var1, $var2){
$secretCode = 'example';
$secretKey = '';
$secretKey.= $var1 . $secretCode;
$secretKey.= $var2 . $secretCode;
return sha1($secretKey);
}
Затем сделайте URL следующим образом:? Var1=foo&var2=bar&key=5e8b73da0b20481c1b4a285fb756958e4faa7ff1
А когда вы обрабатываете код после оплаты, makeSecureCode( $_GET['var1'], $_GET['var2']) должен быть равен $_GET['key']. Если нет, то кто-то изменил это.
Это простая версия с двумя переменными. Вы можете сделать так, чтобы у него было больше входных аргументов или массив, в зависимости от того, что вы предпочитаете.