Table des matières
Scénarios d'utilisation
Vérification de signature API
La pratique rend la vérité réalité
Pratique du code
Maison développement back-end tutoriel php Méthodes communes de vérification de signature API (implémentation PHP)

Méthodes communes de vérification de signature API (implémentation PHP)

Apr 29, 2020 pm 12:37 PM
api

Scénarios d'utilisation

De plus en plus de projets utilisent désormais le modèle de séparation front-end et back-end pour le développement. Les développeurs back-end utilisent des interfaces API pour transférer des données aux développeurs front-end à des fins de traitement et d'affichage. Dans certaines modifications plus importantes des interfaces de données, impliquant de l'argent, des informations utilisateur, etc., si les interfaces ne sont pas protégées et vérifiées, il est souvent facile pour quelqu'un de glisser l'interface de manière malveillante, ce qui entraîne d'énormes pertes.

Vérification de signature API

Nous introduisons ici une vérification de signature plus courante dans l'industrie pour crypter les paramètres de l'interface, qui présente les avantages suivants.

  • Unicité demandée : La signature calculée est unique et peut être utilisée à des fins de vérification.

  • Variabilité du paramètre : Le paramètre contient le paramètre timestamp, qui garantit que la signature calculée pour chaque requête est différente.

  • Actualité de la requête : Puisque la requête contient le paramètre d'horodatage de la requête en cours, le serveur peut vérifier l'horodatage et filtrer les requêtes qui dépassent l'actualité.

  • Sécurité : Même si la requête est capturée de manière malveillante et que les paramètres sont falsifiés de manière malveillante, la signature sera erronée et les paramètres ne pourront pas être modifiés.

La pratique rend la vérité réalité

1 Trier les données à signer de type carte (c'est-à-dire un ensemble de paires clé-valeur) en fonction de la taille de. la clé. Les paramètres de la carte sont triés par ordre alphabétique. Si les premières lettres sont identiques, ils sont triés par la deuxième lettre, et ainsi de suite. Par exemple,

{
    "timestamp": "2017-06-08 09:38:00",
    "format": "xml",
    "app_id": "aabbc",
    "cp_extend_info": "",
    "sign_type": "HMAC-SHA1",
    "sign": "abc"
}
Copier après la connexion

puis, après tri, cela devient

{
    "app_id": "aabbc",
    "cp_extend_info": "",
    "format": "xml",
    "sign_type": "HMAC-SHA1",
    "timestamp": "2017-06-08 09:38:00"
}
Copier après la connexion

Remarque : Si la carte contient un paramètre de signature (signe), la valeur clé de le paramètre doit être filtré. Participez à la signature. Veuillez ne pas participer à la signature des paramètres sans valeurs

2 Sérialisez la carte triée dans une chaîne à signer. être signé est

app_id=aabbc&format=xml&sign_type=HMAC-SHA1&timestamp=2017-06-08 09:38:00
Copier après la connexion

3. Utilisez la clé pour extraire la signature digest (hachage) de la chaîne à signer selon l'algorithme HMAC-SHA1 et encodez-la en base64 (pour faciliter la transmission et la comparaison explicites en supposant que). la clé de signature est test, la signature digest extraite est La valeur de base64_encode est

JqoEqPIVVor0eyRHMYiZftsycVo=
Copier après la connexion

Remarque : Étant donné que certaines données sont requises par le protocole HTTP, l'encodage d'URL doit être effectué pendant transmission réseau afin que le récepteur puisse recevoir les paramètres corrects. Mais si ce paramètre participe à la signature, alors la chaîne à signer doit être la valeur originale de la chaîne plutôt que la valeur de l'URLencoding.

Pratique du code

Exemple PHP

/**
 * 使用密钥生成HMAC-Sha1签名
 * @param array $params 请求参数
 * @param string $signKey 签名密钥
 * @return string
 */
function hmacSha1Sign($params,$signKey)
{
    ksort($params);
 
    $paramString = '';
    foreach ($params as $key => $value) {
        if (is_null($value) || $value=='' || $key == 'sign') {
            continue;
        }
        $paramString .= $key.'='.$value.'&';
    }
    $paramString = substr($paramString,0,-1);
    $sign = base64_encode(hash_hmac("sha1", $paramString, $signKey, $raw_output=TRUE));
    return $sign;
}
Copier après la connexion

Ce qui précède est la méthode de signature de vérification API couramment utilisée dans le développement quotidien. C'est très simple. et très utile. Bienvenue à suivre pour plus de tutoriels.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide de développement de recherche PHP et Manticore : créez rapidement une API de recherche Guide de développement de recherche PHP et Manticore : créez rapidement une API de recherche Aug 07, 2023 pm 06:05 PM

Guide de développement PHP et ManticoreSearch : Créer rapidement une API de recherche La recherche est l'une des fonctionnalités indispensables des applications Web modernes. Qu'il s'agisse d'un site Web de commerce électronique, d'une plateforme de médias sociaux ou d'un portail d'actualités, il doit fournir une fonction de recherche efficace et précise pour aider les utilisateurs à trouver le contenu qui les intéresse. En tant que moteur de recherche en texte intégral doté d'excellentes performances, ManticoreSearch nous fournit un outil puissant pour créer d'excellentes API de recherche. Cet article vous montrera comment

Comment explorer et traiter les données en appelant l'interface API dans un projet PHP ? Comment explorer et traiter les données en appelant l'interface API dans un projet PHP ? Sep 05, 2023 am 08:41 AM

Comment explorer et traiter les données en appelant l'interface API dans un projet PHP ? 1. Introduction Dans les projets PHP, nous devons souvent explorer les données d'autres sites Web et traiter ces données. De nombreux sites Web fournissent des interfaces API et nous pouvons obtenir des données en appelant ces interfaces. Cet article explique comment utiliser PHP pour appeler l'interface API afin d'explorer et de traiter les données. 2. Obtenez l'URL et les paramètres de l'interface API Avant de commencer, nous devons obtenir l'URL de l'interface API cible et les paramètres requis.

Guide d'appel de l'API React : Comment interagir et transférer des données avec l'API backend Guide d'appel de l'API React : Comment interagir et transférer des données avec l'API backend Sep 26, 2023 am 10:19 AM

Guide d'appel ReactAPI : Comment interagir avec et transférer des données vers l'API backend Présentation : Dans le développement Web moderne, interagir avec et transférer des données vers l'API backend est une exigence courante. React, en tant que framework frontal populaire, fournit des outils et fonctionnalités puissants pour simplifier ce processus. Cet article explique comment utiliser React pour appeler l'API backend, y compris les requêtes de base GET et POST, et fournit des exemples de code spécifiques. Installez les dépendances requises : Tout d'abord, assurez-vous qu'Axi est installé dans le projet

Guide d'utilisation de l'API Oracle : exploration de la technologie d'interface de données Guide d'utilisation de l'API Oracle : exploration de la technologie d'interface de données Mar 07, 2024 am 11:12 AM

Oracle est un fournisseur de systèmes de gestion de bases de données de renommée mondiale et son API (Application Programming Interface) est un outil puissant qui aide les développeurs à interagir et à s'intégrer facilement aux bases de données Oracle. Dans cet article, nous approfondirons le guide d'utilisation de l'API Oracle, montrerons aux lecteurs comment utiliser la technologie d'interface de données pendant le processus de développement et fournirons des exemples de code spécifiques. 1.Oracle

Enregistrez les données de l'API au format CSV à l'aide de Python Enregistrez les données de l'API au format CSV à l'aide de Python Aug 31, 2023 pm 09:09 PM

Dans le monde des applications et de l'analyse basées sur les données, les API (Application Programming Interfaces) jouent un rôle essentiel dans la récupération de données provenant de diverses sources. Lorsque vous travaillez avec des données API, vous devez souvent stocker les données dans un format facile d'accès et de manipulation. L'un de ces formats est le CSV (Comma Separated Values), qui permet d'organiser et de stocker efficacement les données tabulaires. Cet article explorera le processus de sauvegarde des données API au format CSV à l'aide du puissant langage de programmation Python. En suivant les étapes décrites dans ce guide, nous apprendrons comment récupérer des données de l'API, extraire des informations pertinentes et les stocker dans un fichier CSV pour une analyse et un traitement plus approfondis. Plongeons dans le monde du traitement de données API avec Python et libérons le potentiel du format CSV

Analyse de la stratégie d'intégration des API Oracle : parvenir à une communication transparente entre les systèmes Analyse de la stratégie d'intégration des API Oracle : parvenir à une communication transparente entre les systèmes Mar 07, 2024 pm 10:09 PM

Analyse de la stratégie d'intégration de l'API Oracle : pour parvenir à une communication transparente entre les systèmes, des exemples de code spécifiques sont nécessaires. À l'ère numérique d'aujourd'hui, les systèmes internes de l'entreprise doivent communiquer entre eux et partager des données, et l'API Oracle est l'un des outils importants pour contribuer à une communication transparente. communication entre les systèmes. Cet article commencera par les concepts et principes de base d'OracleAPI, explorera les stratégies d'intégration d'API et enfin donnera des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et appliquer OracleAPI. 1. API Oracle de base

Développement d'API RESTful avec Laravel : créer des services Web modernes Développement d'API RESTful avec Laravel : créer des services Web modernes Aug 13, 2023 pm 01:00 PM

Développement d'API RESTful avec Laravel : créer des services Web modernes Avec le développement rapide d'Internet, la demande de services Web augmente de jour en jour. En tant qu'architecture de service Web moderne, RESTfulAPI est légère, flexible et facile à développer, elle a donc été largement utilisée dans le développement Web. Dans cet article, nous présenterons comment utiliser le framework Laravel pour créer une API RESTful moderne. Laravel est un langage PHP

Comment gérer les problèmes d'erreur de l'API Laravel Comment gérer les problèmes d'erreur de l'API Laravel Mar 06, 2024 pm 05:18 PM

Titre : Comment gérer les problèmes d'erreur de l'API Laravel, des exemples de code spécifiques sont nécessaires lors du développement de Laravel, des erreurs d'API sont souvent rencontrées. Ces erreurs peuvent provenir de diverses raisons telles que des erreurs logiques du code du programme, des problèmes de requête de base de données ou des échecs de requête d'API externe. La façon de gérer ces rapports d'erreurs est un problème clé. Cet article utilisera des exemples de code spécifiques pour démontrer comment gérer efficacement les rapports d'erreurs de l'API Laravel. 1. Gestion des erreurs dans Laravel

See all articles