Sicherheit(deDE)
Sprache: Englisch | Deutsch
Sicherheit ist wichtig. Bitte lies diese Seite durch und stelle sicher, dass dein Plugin keine Passwörter als Klartext speichert (in der Serverkonsole oder in Logdateien).
Verschlüsselung
AccountAPI speichert keine Passwörter als Klartext. Passwörter werden SHA-256 verschlüsselt in die Datenbank geschrieben. Es ist unmöglich, das Passwort zu rekonstruieren, wenn nur der verschlüsselte Hash bekannt ist, also kann niemand auf die Passwörter zugreifen, auch nicht Admins oder das Plugin selbst. Wenn ein Nutzer sein Passwort vergisst, kann es nicht wiederhergestellt werden, sondern nur geändert.
Die API ermöglicht es, Passwörter verschlüsselt und als Klartext anzugeben. Wenn ein Passwort als Klartext angegeben wird, wird es verschlüsselt.
Syntax
setPassword(Player player, String password, boolean encrypted);
Beispiel 1 (verschlüsselt)
setPassword(player, "5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8", true);
Beispiel 2 (nicht verschlüsselt)
setPassword(player, "password", false);
Beispiel 3 (fehlerhaft)
setPassword(player, "5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8", false);
Beispiel 4 (auch fehlerhaft)
setPassword(player, "password", false);
Beispiel 1 und 2 machen dasselbe. Das Passwort ist "password" und der Hash wird in die Datenbank geschrieben.
In Beispiel 3 ist bereits der Hash gegeben, aber er wird erneut verschlüsselt. Der Hash des Hashes wird in die Datenbank geschrieben.
In Beispiel 4 ist das Passwort als Klartext gegeben, aber es wird nicht verschlüsselt. "passwort" wird in die Datenbank geschrieben.
Übersicht
| Beispiel | Was ist gegeben | Wird verschlüsselt | Was wird in die Datenbank geschrieben |
| 1 | Hash | Nein | Hash |
| 2 | Klartext | Ja | Hash |
| 3 | Hash | Ja | Doppelter Hash |
| 4 | Klartext | Nein | Klartext |
Wenn das Passwort als Klartext gegeben wird, setze den Boolean auf false.
Wird der Hash gegeben, setze ihn auf true.
Für dein Plugin
Wenn du AccountAPI mit deinem Plugin verwendest, stelle sicher, dass keine Passwörter als Klartext gespeichert werden. Verwende keine Befehle wie /register <password>, da jeder Befehl (einschließlich dem Passwort als Klartext) in die Serverkonsole und -logs geschrieben wird.
Eine sicherere Möglichkeit wäre ein /register-Befehl ohne Argumente, welcher einen zufälligen Key erstellt, diesen in die Datenbank schreibt, und dem Spieler so eine Nachricht anzeigt: deinewebseite.com/register?k=12345. Überprüfe den Key und möglicherweise noch die IP-Adresse und stelle eine Registrierungsseite zur Verfügung. Ich empfehle die Verwendung von PHP.
Möglicherweise ist diese Funktion in AccountAPI v0.3 enthalten.
Comments