


Was ist ein einfacher und sicherer API-Autorisierungsmechanismus basierend auf einem Signaturalgorithmus?
Als ich an einem Werbesystem arbeitete, stellte ich fest, dass die Werbesysteme der meisten Plattformen, mit denen ich verbunden war, Token zur Autorisierung von Schnittstellen verwendeten, und dieser Token blieb unverändert und wurde von Werbetreibenden bereitgestellt. Man kann sagen, dass dies das Streaken ist Schnittstelle, aber das ist Diese Art von Schnittstelle stellt keine hohen Sicherheitsanforderungen, die nur böswillige Aufrufe verhindern und die Identität des Kanals überprüfen können.
Letztes Jahr hat der Autor eine einheitliche API-Autorisierungsplattform geschrieben, die eine einheitliche Autorisierungsverwaltung für offene Schnittstellen für interne Dienste und Systemaufrufe von Drittanbietern bietet. Abgesehen von der Erleichterung der Verwaltungsschnittstellenautorisierung hat sie keinen anderen Zweck, die Bereitstellung kostet jedoch Geld . Das ist wahrscheinlich das sinnloseste Projekt, das ich je gemacht habe.
Der heute eingeführte API-Autorisierungsmechanismus ist möglicherweise auch ein weiter verbreiteter API-Schnittstellen-Autorisierungsmechanismus. Ich erinnere mich, dass die von WeChat bereitgestellte Zahlungsschnittstelle auch diese Methode verwendete, als der Autor die WeChat-Zahlungsfunktion ausführte. Vorteile: Einfach, keine Beeinträchtigung der Leistung, keine zusätzlichen Kosten.
Die Implementierungslogik dieser Autorisierungsmethode besteht darin, dass der Autorisierer für jede Zugriffsplattform eine eindeutige Identität (Schlüssel) und einen unabhängigen Schlüssel festlegt, was tatsächlich einem Kontokennwort entspricht. Das zugreifende System muss jedes Mal, wenn es eine Anfrage initiiert, drei Parameter im Anfrageheader tragen, nämlich die Identität (Schlüssel), den Zeitstempel der Anfrage und die Signatur. Das autorisierte System überprüft die Signatur, wenn es die Anfrage empfängt wird nur freigegeben, wenn es bestanden wird.
Der Prozess der Signaturüberprüfung besteht darin, den Schlüssel und den Zeitstempel aus dem Anforderungsheader abzurufen, dann eine Signatur mit demselben Algorithmus basierend auf dem Schlüssel zu generieren (der Aufrufer und der Autorisierende verwenden denselben Signaturalgorithmus) und schließlich die Signaturen zu vergleichen Wird aus dem Anforderungsheader abgerufen, um festzustellen, ob sie gleich sind. Wenn ja, ist die Überprüfung erfolgreich, andernfalls schlägt die Überprüfung fehl.
Der Implementierungsprozess der Autorisierungsmethode basierend auf dem Signaturalgorithmus ist wie folgt:
Autorisierer:
1 Definieren Sie den Signaturalgorithmus, stellen Sie der Zugriffspartei den Signaturgenerierungsalgorithmus zur Verfügung und generieren Sie den Schlüssel und die Identität dafür die Zugriffspartei;
2. Fangen Sie die Schnittstelle ab, die eine Signaturüberprüfung im Projekt erfordert, erhalten Sie den Zeitstempel und die Identität aus dem Anforderungsheader, generieren Sie eine Signatur basierend auf dem Schlüssel und dem Signaturalgorithmus und vergleichen Sie die generierte Signatur mit der vom Anfrage-Header, und fahren Sie mit den Schritten fort, wenn sie identisch sind. 3. Andernfalls lehnen Sie die Anfrage ab. Überprüfen Sie die Aktualität. Vergleichen Sie den aktuellen Systemzeitstempel mit dem aus dem Anfrage-Header erhaltenen Zeitstempel Wenn Sie einen gültigen Zeitraum angeben, geben Sie die Anfrage frei, andernfalls lehnen Sie sie ab und antworten Sie, dass die Signatur abgelaufen ist.
Zugreifende Partei:1. Besorgen Sie sich das Docking-Dokument von der autorisierten Partei und fragen Sie die autorisierte Partei nach dem Schlüssel und der Identität.
2. Kapseln Sie die Signaturmethode gemäß dem vom Dokument bereitgestellten Signaturgenerierungsalgorithmus.
3. Bei einer Anfrage werden die Identität, der aktuelle Zeitstempel und die Signatur in den Anfrageheader geschrieben.
Der Signaturgenerierungsalgorithmus kann angepasst werden. Nach dem Zusammenfügen von Identität (Schlüssel), Zeitstempel (Zeitstempel) und Schlüssel wird beispielsweise ein irreversibler Algorithmus verwendet, um die Zeichenfolge zu verschlüsseln, um eine Signatur zu generieren, z. B. der MD5-Algorithmus. Je komplexer die Regeln, desto schwieriger sind sie zu knacken.
Welche Vorteile bietet das Hinzufügen eines Zeitstempels zu einer Signatur?
Der erste besteht darin, der Signatur Aktualität zu verleihen. Das Autorisierungssystem kann die Gültigkeitsdauer der Signatur auf eine Sekunde oder fünf Sekunden begrenzen, indem es den Anforderungszeitstempel zum Vergleich mit dem aktuellen Zeitstempel verwendet. Allerdings muss die Systemzeit beider Parteien stimmen.
Der zweite Punkt ist die Sicherheit: Wenn ein Hacker eine Anfrage von Ihrem System abfängt, die Anfrage dann ändert und dann eine Anfrage initiiert, wird es definitiv einige Zeit dauern, sodass die Gültigkeitsdauer der Signatur abgelaufen ist, wenn das System die manipulierte Anfrage erhält . Wenn Sie den im Anforderungsheader übergebenen Zeitstempel ändern, generiert das Autorisierungssystem der Anforderung eine andere Signatur als die im Anforderungsheader übergebene, sodass die Anforderung weiterhin ungültig ist.
Wenn Sie den Schlüssel nicht kennen, können Sie keine gültige Signatur erstellen, ohne die Signaturregeln der autorisierten Partei (Broiler) zu kennen. Mit einem asymmetrischen Verschlüsselungsalgorithmus signierte Dateien machen es nahezu unmöglich, den Schlüssel durch rohe Gewalt zu knacken.
Warum sollten dann Zeitstempel verwendet werden, anstatt Zeitzeichenfolgen zu formatieren?
Dies liegt möglicherweise an der Zeitzonenkompatibilität. Wenn sich verschiedene Computerräume in unterschiedlichen Zeitzonen befinden, sind die Zeitstempel jedoch gleich.
Um die Sicherheit dieser Autorisierungsmethode zu maximieren, müssen zunächst die Regeln zur Signaturgenerierung komplex genug sein, dann muss der Verschlüsselungsalgorithmus der Signatur irreversibel sein, niemals einen Algorithmus wie Base64 verwenden und schließlich der Schlüssel muss lang und komplex genug sein, um sicherzustellen, dass es selbst bei Kenntnis der Signaturgenerierungsregeln unmöglich ist, den Schlüssel durch rohe Gewalt zu knacken.
Signaturregeln beziehen sich auf die Regeln zum Generieren von Signaturzeichenfolgen vor der Verschlüsselung. Zu den Regeln gehören beispielsweise Schlüssel, geheimer Schlüssel und Zeitstempel, wobei Schlüssel und Schlüssel zweimal erscheinen. Angenommen, der Schlüssel ist „app“, der geheime Schlüssel ist „123“, der Zeitstempel ist „1111111111111“, die durch Spleißen erzeugte vorverschlüsselte Signatur ist „app1231111111111111app123“ und schließlich wird die gespleißte Zeichenfolge durch den Verschlüsselungsalgorithmus verschlüsselt um die endgültige Signatur zu erstellen.
Ist es nicht mühsam, die Signaturlogik für jede Schnittstelle zu schreiben?
Nein. Für den Autorisierer kann die Signaturverifizierungslogik durch Filter oder Interceptoren vervollständigt werden; für den Aufrufer gibt es verschiedene Methoden, die unterschiedliche Frameworks verwenden, aber wir können immer einen Weg finden, die Signaturlogik nur einmal zu schreiben, oder?
Das obige ist der detaillierte Inhalt vonWas ist ein einfacher und sicherer API-Autorisierungsmechanismus basierend auf einem Signaturalgorithmus?. 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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

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- und ManticoreSearch-Entwicklungshandbuch: Erstellen Sie schnell eine Such-API. Die Suche ist eine der unverzichtbaren Funktionen moderner Webanwendungen. Unabhängig davon, ob es sich um eine E-Commerce-Website, eine Social-Media-Plattform oder ein Nachrichtenportal handelt, muss eine effiziente und genaue Suchfunktion bereitgestellt werden, damit Benutzer die Inhalte finden, die sie interessieren. Als Volltextsuchmaschine mit hervorragender Leistung stellt uns ManticoreSearch ein leistungsstarkes Tool zur Erstellung hervorragender Such-APIs zur Verfügung. Dieser Artikel zeigt Ihnen, wie es geht

Wie kann ich Daten durch Aufrufen der API-Schnittstelle in einem PHP-Projekt crawlen und verarbeiten? 1. Einführung In PHP-Projekten müssen wir häufig Daten von anderen Websites crawlen und diese Daten verarbeiten. Viele Websites bieten API-Schnittstellen, und wir können Daten durch Aufrufen dieser Schnittstellen abrufen. In diesem Artikel wird erläutert, wie Sie mit PHP die API-Schnittstelle zum Crawlen und Verarbeiten von Daten aufrufen. 2. Ermitteln Sie die URL und die Parameter der API-Schnittstelle. Bevor Sie beginnen, müssen Sie die URL der Ziel-API-Schnittstelle und die erforderlichen Parameter ermitteln.

Titel: Wie man mit Laravel-API-Fehlerproblemen umgeht, sind spezifische Codebeispiele erforderlich. Bei der Entwicklung von Laravel treten häufig API-Fehler auf. Diese Fehler können verschiedene Ursachen haben, z. B. Logikfehler im Programmcode, Probleme bei Datenbankabfragen oder Fehler bei externen API-Anfragen. Der Umgang mit diesen Fehlerberichten ist ein zentrales Thema. In diesem Artikel wird anhand spezifischer Codebeispiele gezeigt, wie Laravel-API-Fehlerberichte effektiv verarbeitet werden. 1. Fehlerbehandlung in Laravel

In der Welt der datengesteuerten Anwendungen und Analysen spielen APIs (Application Programming Interfaces) eine entscheidende Rolle beim Abrufen von Daten aus verschiedenen Quellen. Wenn Sie mit API-Daten arbeiten, müssen Sie die Daten häufig in einem Format speichern, das leicht zugänglich und einfach zu bearbeiten ist. Ein solches Format ist CSV (Comma Separated Values), mit dem tabellarische Daten effizient organisiert und gespeichert werden können. In diesem Artikel wird der Prozess des Speicherns von API-Daten im CSV-Format mithilfe der leistungsstarken Programmiersprache Python erläutert. Indem wir die in diesem Leitfaden beschriebenen Schritte befolgen, erfahren wir, wie wir Daten aus der API abrufen, relevante Informationen extrahieren und sie zur weiteren Analyse und Verarbeitung in einer CSV-Datei speichern. Tauchen wir ein in die Welt der API-Datenverarbeitung mit Python und erschließen wir das Potenzial des CSV-Formats

ReactAPI-Aufrufanleitung: So interagieren Sie mit der Backend-API und übertragen Daten an diese. Übersicht: In der modernen Webentwicklung ist die Interaktion mit und die Übertragung von Daten an die Backend-API eine häufige Anforderung. React bietet als beliebtes Front-End-Framework einige leistungsstarke Tools und Funktionen, um diesen Prozess zu vereinfachen. In diesem Artikel wird erläutert, wie Sie mit React die Backend-API aufrufen, einschließlich grundlegender GET- und POST-Anfragen, und es werden spezifische Codebeispiele bereitgestellt. Installieren Sie die erforderlichen Abhängigkeiten: Stellen Sie zunächst sicher, dass Axi im Projekt installiert ist

So verwenden Sie MongoDB zum Entwickeln einer einfachen CRUDAPI. In der modernen Webanwendungsentwicklung sind CRUD-Operationen (Hinzufügen, Löschen, Ändern, Abfragen) eine der häufigsten und wichtigsten Funktionen. In diesem Artikel stellen wir die Entwicklung einer einfachen CRUD-API mithilfe der MongoDB-Datenbank vor und stellen spezifische Codebeispiele bereit. MongoDB ist eine Open-Source-NoSQL-Datenbank, die Daten in Form von Dokumenten speichert. Im Gegensatz zu herkömmlichen relationalen Datenbanken verfügt MongoDB nicht über ein vordefiniertes Schema

Analyse der Oracle API-Integrationsstrategie: Um eine nahtlose Kommunikation zwischen Systemen zu erreichen, sind spezifische Codebeispiele erforderlich. Im heutigen digitalen Zeitalter müssen interne Unternehmenssysteme miteinander kommunizieren und Daten austauschen, und Oracle API ist eines der wichtigen Tools, um eine nahtlose Kommunikation zu erreichen Kommunikation zwischen Systemen. Dieser Artikel beginnt mit den grundlegenden Konzepten und Prinzipien von OracleAPI, untersucht API-Integrationsstrategien und gibt schließlich spezifische Codebeispiele, um den Lesern zu helfen, OracleAPI besser zu verstehen und anzuwenden. 1. Grundlegende Oracle-API

Oracle ist ein weltbekannter Anbieter von Datenbankmanagementsystemen und seine API (Application Programming Interface) ist ein leistungsstarkes Tool, das Entwicklern hilft, einfach mit Oracle-Datenbanken zu interagieren und diese zu integrieren. In diesem Artikel befassen wir uns mit dem Oracle API-Nutzungsleitfaden, zeigen den Lesern, wie sie die Datenschnittstellentechnologie während des Entwicklungsprozesses nutzen können, und stellen spezifische Codebeispiele bereit. 1.Orakel
