Wie speichert man Benutzername und Passwort in der WordPress-Option DB?

Ich entwickle gerade ein Plugin und die Wahrscheinlichkeit ist groß, dass ich es wahrscheinlich im öffentlichen Plugin-Repository veröffentlichen werde, damit andere es benutzen können.

Das Plugin wird eine API verwenden und um diese API zu verwenden, müssen Sie einen Benutzernamen und ein Passwort übergeben. Also muss mein Plugin diese Anmeldedaten in der database speichern. Ich möchte diese nicht im Klartext speichern, obwohl die API sie im Klartext benötigt.

Meine Frage ist, wie kann ich diese sensiblen Informationen speichern? Hashing ist out, also muss es eine Art Verschlüsselung sein.

Gibt es in WordPress einen eindeutigen Schlüssel, der sich von Blog zu Blog unterscheiden kann? Welche PHP-functionen sollte ich zum Verschlüsseln und Entschlüsseln verwenden? Ich suche nach functionen, die höchstwahrscheinlich bei allen WP-Installationen funktionieren.

Solutions Collecting From Web of "Wie speichert man Benutzername und Passwort in der WordPress-Option DB?"

Während ich den vorherigen Antworten zustimme, möchte ich zur Beantwortung der Frage, die Sie tatsächlich gestellt haben, eine dieser Konstanten für wp-config.php verwenden:

 define ('AUTH_KEY', 'redated');
 define ('SECURE_AUTH_KEY', 'redated');
 define ('LOGGED_IN_KEY', 'redated');
 define ('NONCE_KEY', 'redated');

Sie sollen in WordPress-Installationen einzigartig sein – und sind die einzigen Optionen für bereits existierende Schlüssel in WordPress. Alternativ wäre es, eine eigene ähnliche Konstante hinzuzufügen, indem man eine von ihnen gegen die Admin-E-Mail-Adresse oder Ähnliches hackt – und diese dann in einer versteckten Einstellungsoption speichert -, um vor Verlust des Schlüssels zu schützen, wenn jemand versehentlich die Schlüssel ändert Plugin ist installiert. Die Gefahr besteht darin, dass, wenn sie bei der Erstinstallation nicht eindeutig gemacht wurden, aber der Administrator / Site-Besitzer entscheidet, den Fehler nachträglich zu beheben, sie nicht versehentlich die Passwortverschlüsselung unterbrechen sollten.

Wie für die Verschlüsselung / Entschlüsselung functionen – eine schnelle Google-Suche gibt die folgende Auflistung mit Code, der zur Rechnung scheint: http://maxvergelli.wordpress.com/2010/02/17/easy-use-and-strong- Verschlüsselung-Entschlüsselung-PHP-functionen /

 function encrypt ($ input_string, $ key) {
     $ iv_size = mcrypt_get_iv_size (MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
     $ iv = mcrypt_create_iv ($ iv_size, MCRYPT_RAND);
     $ h_key = Hash ('sha256', $ key, TRUE);
     return base64_encode (mcrypt_encrypt (MCRYPT_RIJNDAEL_256, $ h_key, $ input_string, MCRYPT_MODE_ECB, $ iv));
 }

 function entschlüsseln ($ chroced_input_string, $ key) {
     $ iv_size = mcrypt_get_iv_size (MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
     $ iv = mcrypt_create_iv ($ iv_size, MCRYPT_RAND);
     $ h_key = Hash ('sha256', $ key, TRUE);
     return trim (MCrypt_decrypt (MCRYPT_RIJNDAEL_256, $ h_key, base64_decode ($ verschlüsselter_Eingangsstring), MCRYPT_MODE_ECB, $ iv));
 }

Hier finden Sie eine Dokumentation der AES-Verschlüsselung, die hier verwendet wird: http://www.chilkatsoft.com/p/php_aes.asp

Dies ist genau der Umstand, für den OAuth entwickelt wurde.

Von der OAuth-Startseite :

Für Service Provider Entwickler …

Wenn du unterstützt …

  • Web Applikationen
  • serverseitige APIs
  • Mashups

Wenn Sie geschützte Daten im Namen Ihrer Benutzer speichern, sollten sie ihre Kennwörter nicht im Internet verbreiten, um Zugriff darauf zu erhalten. Verwenden Sie OAuth, um Ihren Benutzern Zugriff auf ihre Daten zu gewähren und gleichzeitig ihre Anmeldeinformationen zu schützen.

Der Vorteil von OAuth ist, dass Sie das Kennwort des Benutzers nicht speichern müssen. Beim ersten Einrichten des Plugins werden sie aufgefordert, sich mit einem Benutzernamen und einem Passwort über die Anwendung anzumelden (normalerweise eine Seite, die auf demselben Server wie die API gehostet wird und entweder in eine Seitenumleitung, eine Thickbox oder einen Iframe geladen wird). .

Sobald der Benutzer angemeldet ist, erstellt der Server (Ihr System) einen sicheren Schlüssel, den das System (WordPress) zur Verbindung mit der API verwenden kann. Dieser Schlüssel ist einzigartig für das Benutzerkonto und die Site – und gibt der Anwendung (auf WordPress) die Erlaubnis, Dinge mit der API im Namen des Benutzers zu tun, ohne jedes Mal ihre Authentifizierungsinformationen zu übergeben.

Wenn Sie ein Beispiel in Aktion sehen möchten, sehen Sie sich Jetpack an .

Wenn du das Plugin aktivierst, klagt es, dass es nicht verbunden ist. Wenn Sie es verbinden, geben Sie Ihre Anmeldeinformationen über WordPress.com ein und richten die OAuth-Interaktion zwischen WordPress und ihrer API ein.

Aber Sie müssen das nur einmal tun und Ihr WordPress.com Benutzername / Passwort wird nie in Ihrer lokalen WordPress database gespeichert.