Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Schnittstellensicherheit: Vier Lösungen für die PHP-Schnittstellenverschlüsselung

PHP-Schnittstellensicherheit: Vier Lösungen für die PHP-Schnittstellenverschlüsselung

不言
不言Original
2018-08-18 18:01:2111889Durchsuche

In diesem Artikel geht es um die PHP-Schnittstellensicherheit: Vier Lösungen für die PHP-Schnittstellenverschlüsselung. Ich hoffe, dass er für Freunde hilfreich ist.

Als Internet-Programmierer müssen Sie, egal ob Sie ein Front-End oder ein Back-End sind, ein gewisses Verständnis für http-Anfragen haben, die Eigenschaften von http kennen und klar verstehen, was Anfrage und Antwort sind sind in http. , wissen, warum es Cookies gibt, Sitzungen und die Bedeutung und Notwendigkeit von Bestätigungscodes auf Websites. Denn wenn es um die Sicherheit von APP-Schnittstellen geht, geht es um die Sicherheit von HTTP-Anfragen.

Im Allgemeinen verwenden wir auf der PC-Seite verschlüsselte Cookies, um Mitglieder zu identifizieren und Sitzungen aufrechtzuerhalten. Cookies gehören jedoch zur lokalen Speicherfunktion des Browsers. Die APP-Seite kann nicht verwendet werden, daher müssen wir Mitglieder über Token-Parameter identifizieren. Wie gehen wir mit diesem Token um?

Lassen Sie uns zunächst über die vier Lösungen sprechen, die ich vor der Verschlüsselung dieser Schnittstelle durchlaufen habe:

Option 1
Bei der APP-Entwicklung sind sich die Leute einig ein bestimmter MD5-Kombinationsalgorithmus, und vergleichen Sie dann die beiden Enden. Wenn nicht, verweigern Sie dies. Wenn das APP-Programm jedoch dekompiliert wird, werden diese vereinbarten Algorithmen angezeigt. Insbesondere in der Android-App ist es mit dem Algorithmus vollständig möglich, die Schnittstellenanforderung zu simulieren und die Überprüfung zu bestehen

Option 2Das Passwort der Datenbankmitgliedschaftstabelle hat ein Zufälliges Passwort und doppelt verschlüsselter MD5-Wert. Wenn sich der Benutzer anmeldet, gebe ich die entsprechende UID und das entsprechende Passwort des Mitglieds zurück. Wenn sie es wissen, können sich andere nicht anmelden Jedes Mal, wenn die Schnittstelle angefordert wird
, kann das der aktuellen UID entsprechende Token schnell über die Primärschlüssel-UID gefunden und dann verglichen werden user_id=333&token=aa37e10c7137ac849eab8a2d5020568f Diese Idee ist jedoch zu einfach für die Person, die das Paket erfasst Sie können sich jedoch nicht über das Chiffretext-Passwort beim Mitglied anmelden. Sobald Sie dieses Token kennen, können Sie dieses Token jederzeit verwenden, um die entsprechende Schnittstelle des Mitglieds zu bedienen.

Option 3Unter Verwendung eines symmetrischen Verschlüsselungsalgorithmus führt der Verschlüsselungsalgorithmus eine zeitkritische Verschlüsselung auf
durch und ist innerhalb eines bestimmten Zeitlimits verfügbar. Wenn sich das Mitglied erfolgreich anmeldet, verschlüsselt der Server die ID und gibt sie an den Client zurück. Der Client bringt diesen Parameter jedes Mal mit, wenn er die Schnittstelle anfordert, und der Server authentifiziert sich durch Entschlüsselung. uid+网站公钥 Dies ist jedoch ebenfalls unsicher. Denn um uns von außen zu schützen, können wir uns nicht von innen schützen. Ich habe gehört, dass der Ctrip-Ausfall dieses Mal auf die böswillige Vorgehensweise von zurückgetretenen internen Mitarbeitern zurückzuführen ist. Wenn interne böswillige Mitarbeiter die entsprechenden Algorithmusregeln kennen, können sie relevante Mitglieder auch dann über die Schnittstelle bedienen, wenn sie keine Datenbankberechtigungen haben.

Option 4Anfrage bei der Anmeldung von Mitgliedern Melden Sie sich bei der Schnittstelle an und der Server gibt dann ein Token an den Client zurück. Die Regel zum Generieren des Tokens ist
. Entscheiden Sie je nach Bedarf, ob das Token in den Cache gelegt werden soll, und warten Sie eine Weile Zeit, bis es automatisch abläuft, oder legen Sie es in die Datenbank ab (wenn Sie es in die Datenbank einfügen möchten, erstellen Sie eine separate Tabelle, um die Anmelde- und Abmeldezeit des Benutzers aufzuzeichnen) und ändern Sie es, wenn sich der Benutzer abmeldet, um sicherzustellen, dass das Token kann nur zwischen der manuellen Abmeldung und der Anmeldung des Benutzers verwendet werden. 网站公钥 + 当前uid + 当前时间戳 + 一段随机数Um die Sicherheit zu gewährleisten, sollte es Benutzern möglich sein, sich innerhalb eines bestimmten Zeitraums automatisch abzumelden; diese Lösung kann in Kombination mit Linux und der Datenbank-Berechtigungsverwaltung sowohl externen als auch internen Schutz verhindern.

Vorsichtsmaßnahmen für die Entwicklung anderer Schnittstellen

  1. Es ist am besten, Daten im JSON-Format zu verwenden, da JSON eine bessere plattformübergreifende Leistung bietet. Bei der Generierung von JSON sollten Sie auf die beiden Formate von json achten: Objekt (Wörterbuch) und Array. In PHP gibt es kein ähnliches Foreach. Es kann keine Objekte durchlaufen, sondern nur Arrays Im Allgemeinen wird der Schlüsselwert über den Schlüsselnamen ermittelt.


  2. Ob Erfolg oder Misserfolg. Die Schnittstelle muss eindeutige Datenstatusinformationen bereitstellen und kann nicht NULL zurückgeben. Wenn NULL zurückgegeben wird, stürzt sie auf der IOS-Seite ab.

Verwandte Empfehlungen:

Wie PHP die QR-Code-Generierung und -Identifizierung (Code) implementiert

php-Implementierungscode zum Exportieren von Excel-Dateien im CSV-Format

So implementieren Sie die Echtzeitbearbeitung von Tabellen mit PHP und Ajax (Code im Anhang)

Das obige ist der detaillierte Inhalt vonPHP-Schnittstellensicherheit: Vier Lösungen für die PHP-Schnittstellenverschlüsselung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn