Автор оригинала: David Wong.
В этой статье описывается операция проверки безопасности интерфейса API разработки PHP с примерами
API-интерфейс PHP
При разработке PHP мы знакомы с разработкой интерфейса API. После того, как внутренний персонал написал интерфейс, внешний персонал может получить данные, предоставленные интерфейсом, по ссылке, и возвращаемые данные обычно делятся на два варианта: XML и JSON, В этом процессе сервер не знает, что является источником запроса. Возможно, кто-то незаконно звонит в наш интерфейс для получения данных, поэтому необходимо использовать проверку безопасности для защиты некоторых звонков.
Принципиальная схема принципа проверки принцип
Из рисунка ясно видно, что если передний план хочет вызвать интерфейс, ему необходимо использовать несколько параметров для создания подписи. Метка времени: текущее время Случайное число: случайно сгенерированное случайное число Пароль: во время разработки передней и задней платформ знак, известный обеим сторонам, эквивалентен секретному коду Правила алгоритма: согласованные правила работы. Вышеуказанные три параметра могут быть использованы для создания подписи.
На переднем плане создается подпись. Когда требуется получить доступ к интерфейсу, метка времени, случайное число и подпись передаются в фоновом режиме через URL-адрес. После того, как фон получит метку времени и случайное число, он вычисляет подпись по тем же правилам алгоритма, а затем сравнивает ее с переданной подписью. Если это то же самое, он возвращает данные.
алгоритмическое правило
Правила алгоритма очень важны во взаимодействии между передней и задней платформами. Передняя и задняя платформы должны вычислять подпись с помощью правил алгоритма. Что касается того, как устанавливать правила, передняя и задняя стороны должны провести переговоры и определить.
Мое правило алгоритма таково
Временная метка, случайное число и пароль сортируются в порядке начального регистра, а затем объединяются в строки ° Шифрование SHA1 Шифрование MD5 Преобразуется в верхний регистр.
Прием
Здесь у меня нет реального переднего плана. Я напрямую использую PHP – файл вместо переднего плана, а затем имитирую запрос get через curl. Я использую платформу TP, а формат URL-адреса-pathinfo.
исходный код
namespace app\service\controller;
use think\controller;
class CheckUrl extends Controller{
Const token ='api '; // unified password for front and back end
//Respond to requests from the front desk
public function respond(){
//Authentication
$timeStamp = $_ Get ['t ']; // timestamp
$randomStr = $_ Get ['r ']; // random string
$signature = $_ Get ['s']; // sign
$str = $this -> arithmetic($timeStamp, $randomStr);
if($str != $signature){
Return ['status' = > 0, 'MSG' = > 'verification failed','data '= >];
}
}
/**
*@ param $timestamp
*@ param $randomstr random string
*@ return string return signature
*/
public function arithmetic($timeStamp, $randomStr){
$arr = [
'timeStamp' => $timeStamp,
'randomStr' => $randomStr,
'token' => self::TOKEN
];
//Sort by first case
sort($arr,SORT_STRING);
//Splicing into strings
$str = implode($arr);
//Encryption
$signature = sha1($str);
$signature = md5($signature);
//Convert to uppercase
$signature = strtoupper($signature);
return $signature;
}
}Этот метод-лишь один из них. На самом деле, существует множество других методов, которые можно использовать для проверки безопасности.
Примеры показывают проверку безопасности PHP-формы
В этой статье в основном представлен метод использования и проверки PHP-токена и реализована функция проверки токена путем обработки поля скрытой отправки формы, чтобы предотвратить доступ к незаконным исходным данным.
- Функция token PHP, использующая проверку токенов, может эффективно предотвращать отправку и доступ к незаконным исходным данным и повышать безопасность работы с данными
- Способ реализации Форма на стойке регистрации:
за кулисами do.php Часть проверки токена
$module = $_POST['module']; $timestamp = $_POST['timestamp']; $token = md5($module.'#[email protected]%!^*'.$timestamp); if($token != $_POST['token']){ Return ['status' = > 0, 'MSG' = >'illegal data source ','data' = >]; } $sec_name=$_POST['sec_name']; //PHP data processing
Для получения дополнительной информации о PHP читатели, интересующиеся им, могут ознакомиться со следующими разделами: Учебник по безопасности программирования на PHP, краткое изложение навыков фильтрации безопасности PHP, вводное руководство по базовой грамматике PHP, вводное руководство по объектно-ориентированному программированию PHP, краткое описание использования строк PHP, вводное руководство по работе с базой данных PHP + MySQL и краткое описание общих навыков работы с базой данных PHP Генеральный менеджер
Я надеюсь, что эта статья полезна для программирования на PHP.
Оригинал: “https://developpaper.com/php-development-api-interface-security-verification-operation-examples/”