Detaillierte Erläuterung des Tokens in der PHP-Schnittstelle
Dieser Artikel teilt Ihnen hauptsächlich die detaillierte Erklärung des Tokens der PHP-Schnittstelle mit und hofft, allen zu helfen. Werfen wir zunächst einen Blick auf die Zusammenfassung der Schnittstellenfunktionen:
Zusammenfassung der Schnittstellenfunktionen:
1 Da es nicht offen ist, sind alle Schnittstellen geschlossen und nur innerhalb verfügbar Das Produkt ist gültig.
2. Da es nicht offen ist, ist das OAuth-Protokoll nicht möglich, da es keinen zwischengeschalteten Benutzerautorisierungsprozess gibt ;
Für den Zugriff auf einige Schnittstellen ist keine Benutzeranmeldung erforderlich.
Das erste Token ist für die Schnittstelle (api_token);
Das zweite Token ist für den Benutzer (user_token);
Seine Aufgabe besteht darin, die Verschleierung und Wirksamkeit des Schnittstellenzugriffs aufrechtzuerhalten und sicherzustellen, dass die Schnittstelle nur von der eigenen Familie verwendet werden kann. Die Referenzidee lautet wie folgt:
Generieren Sie eine zufällige Zeichenfolge basierend auf den gemeinsamen Attributen des Servers und des Clients. Der Client generiert diese Zeichenfolge, und der Server generiert auch eine Zeichenfolge basierend auf demselben Algorithmus, um die des Clients zu überprüfen Zeichenfolge.
Die aktuelle Schnittstelle ist im Wesentlichen im MVC-Modus und die URL ist im Wesentlichen im Restful-Stil. Das allgemeine Format der URL ist wie folgt:
http://blog.snsgou.com/module name/controller name /Methodenname?Parametername 1=Parameterwert 1&Parametername 2=Parameterwert 2&Parametername 3=Parameterwert 3
api_token = md5 ('Modulname' + 'Controllername ' + 'Methodenname' + '2013-12-18' + 'Verschlüsselungsschlüssel') = 770fed4ca2aabd20ae9a5dd774711de2
wobei1, '2013-12-18' die Tageszeit ist,
2, „Verschlüsselungsschlüssel“ ist ein privater Verschlüsselungsschlüssel. Nachdem das Mobiltelefon ein „Schnittstellenbenutzer“-Konto auf dem Server registriert hat, weist das System ein Konto und ein Kennwort zu. Die Designreferenz für die Datentabelle lautet wie folgt:
Feldname Feld Typanmerkung
client_id varchar( 20) Client-ID
client_secret varchar(20) Client-(Verschlüsselungs-)Schlüssel
Serverschnittstellenüberprüfung, PHP-Implementierungsprozess ist wie folgt:
Lassen Sie uns über das zweite Token (user_token) sprechen
Seine Aufgabe besteht darin, den Benutzernamen und das Passwort des Benutzers vor der mehrfachen Übermittlung zu schützen, um einen Passwortverlust zu verhindern.
1. Der Benutzer gibt den „Benutzernamen“ und das „Passwort“ ein, um sich anzumelden (wenn die Bedingungen dies zulassen, verwenden Sie diese am besten https für diesen Schritt);
2. Nach erfolgreicher Anmeldung gibt der Server ein user_token zurück. Die Generierungsregeln lauten wie folgt:<?php // 1、获取 GET参数 值 $module = $_GET['mod']; $controller = $_GET['ctl'] $action = $_GET['act']; $client_id = $_GET['client_id']; $api_token = $_GET['api_token‘]; // 2、根据客户端传过来的 client_id ,查询数据库,获取对应的 client_secret $client_secret = getClientSecretById($client_id); // 3、服务端重新生成一份 api_token $api_token_server = md5($module . $controller . $action . date('Y-m-d', time()) . $client_secret); // 4、客户端传过来的 api_token 与服务端生成的 api_token 进行校对,如果不相等,则表示验证失败 if ($api_token != $api_token_server) { exit('access deny'); // 拒绝访问 } // 5、验证通过,返回数据给客户端 ?>
Der Server verwendet eine Datentabelle, um den Status von user_token aufrechtzuerhalten. Das Tabellendesign ist wie folgt:
Feldname, Feldtypanmerkunguser_id int Benutzer-ID
user_token varchar(36) Benutzertoken
expire_time int Ablaufzeit (Unix-Zeitstempel)
(Hinweis: Es werden nur die Kernfelder aufgelistet, bitte erweitern Sie die anderen!!!)
Nachdem der Server das user_token generiert hat, wird es Gibt es an den Client zurück (Speicher selbst), und der Client stellt jede Schnittstellenanforderung. Wenn für den Zugriff auf die Schnittstelle eine Benutzeranmeldung erforderlich ist, müssen user_id und user_token an den Server zurückgegeben werden. Nach Erhalt dieser beiden Parameter muss der Server Folgendes tun Folgende Schritte:
1. Ermitteln Sie die Gültigkeit der api_token-Tabellendatensätze.
3 Der Tabellendatensatz ist nicht vorhanden. Wenn der Datensatz vorhanden ist, fahren Sie mit dem nächsten Schritt fort. 4. Aktualisieren Sie die Ablaufzeit von user_token Gültigkeitsdauer ohne Löschung);
5. Schnittstellendaten zurückgeben:
Anfragemethode: POST
POST-Parameter: title=Ich bin der Titel&content=Ich bin der Inhalt
Rückgabedaten:
Wie kann man Token-Hijacking verhindern?
Es wird definitiv ein Problem des Token-Lecks geben. Wenn ich zum Beispiel Ihr Mobiltelefon bekomme und Ihren Token kopiere, kann ich mich vor Ablauf an anderer Stelle als Sie anmelden.
Eine einfache Möglichkeit, dieses Problem zu lösen
1. Verschlüsseln Sie das Token beim Speichern symmetrisch, speichern Sie es und entschlüsseln Sie es dann, wenn Sie es verwenden.
2. Kombinieren Sie die Anforderungs-URL, den Zeitstempel und das Token und fügen Sie eine Salt-Signatur hinzu, und der Server überprüft die Gültigkeit.
Der Ausgangspunkt beider Methoden ist: Es ist einfacher, Ihre gespeicherten Daten zu stehlen, aber es ist schwieriger, Ihr Programm zu zerlegen und Ihre Verschlüsselungs-, Entschlüsselungs- und Signaturalgorithmen zu hacken. Es ist jedoch eigentlich nicht schwer zu sagen, dass es schwierig ist, denn schließlich geht es darum, sich vor Herren und nicht vor Bösewichten zu schützen.
Verwandte Empfehlungen:
Instanzmethode von PHP, die Token implementiert
Detaillierte Erläuterung des Tokens in der App-Schnittstelle
So legen Sie die WeChat-Applet-URL und das Token fest
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Tokens in der PHP-Schnittstelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
