authServer.php: Passkey-Registrierung gegen fremde Aufrufe absichern
getCreateArgs und processCreate waren ohne jede Pruefung erreichbar. Der Einmalschluessel aus addUser.php steuerte nur, ob index.php die Registrierungsseite anzeigt - authServer.php liess sich direkt aufrufen und umging das. Da userId und userName fest hinterlegt sind, konnte damit jeder mit zwei Requests einen eigenen Passkey fuer das vorhandene Konto anlegen. checkAdduser() vermerkt eine erfolgreiche Schluesselpruefung jetzt als $_SESSION["mayRegister"]. authServer.php laesst getCreateArgs, processCreate und clearRegistrations nur noch durch, wenn dieser Vermerk hoechstens zehn Minuten alt ist oder der Aufruf aus dem lokalen Netz kommt. Anmeldung und Metadatenabfrage (getGetArgs, processGet, queryFidoMetaDataService) bleiben unveraendert offen. authServer.php bindet dafuer helper.php ein statt nur restricted/mysql.php; das eigene session_start() entfaellt, helper.php erledigt es. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -59,6 +59,10 @@ function checkAdduser(){
|
||||
return false;
|
||||
}
|
||||
if ($result->num_rows > 0) {
|
||||
// Freigabe fuer die Passkey-Registrierung vermerken. authServer.php
|
||||
// prueft dieses Merkmal; ohne das waeren getCreateArgs/processCreate
|
||||
// direkt aufrufbar und der Einmalschluessel wirkungslos.
|
||||
$_SESSION["mayRegister"] = time();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user