/

Produktivbetrieb einrichten

Eine Checkliste vor dem Launch - alles in src/Config.php, was standardmäßig auf etwas Praktisches für die lokale Entwicklung eingestellt ist, nicht für den Produktivbetrieb.

1. Echte Datenbank-Zugangsdaten setzen

Verweisen Sie XcrudConfig in src/Config.php auf Ihre Produktivdatenbank statt auf die während der Entwicklung genutzte lokale:

public static string $dbHost = 'your-db-host';
public static string $dbName = 'your_production_db';
public static string $dbUser = 'your_db_user';
public static string $dbPass = 'a-real-password';

2. Ein starkes $appSecret erzeugen

$appSecret ist der HMAC-Schlüssel, der jede where()-/subselect()-/pass_var()-Bedingung sowie jede an den Browser gesendete Logikbedingungs-Payload signiert. Die Signierung erlaubt es diesen Werten, sicher durch den Client zu reisen - ajax_crud.php weigert sich, einen Wert anzuwenden, dessen Signatur nicht passt. Gelangt dieses Secret nach außen (oder bleibt es auf seinem Standardwert), kann jeder einen signierten Wert fälschen und die damit vorgesehene Einschränkung umgehen - z. B. durch das Bearbeiten einer URL, um der eigenen where('status', '=', 'active')-Eingrenzung einer Seite zu entkommen.

public static string $appSecret = 'change-this-secret-before-production';

Ersetzen Sie ihn durch eine lange, zufällige, für Ihre Installation eindeutige Zeichenfolge - zum Beispiel die Ausgabe von bin2hex(random_bytes(32)) - und committen Sie den echten Wert niemals in die Versionsverwaltung.

3. Die Sicherheitsgrenze überprüfen

$blacklistedTables und $blacklistedColumns in src/Config.php bilden die eigentliche Sicherheitsgrenze der Installation - nicht der eigene ->columns()-Aufruf einer einzelnen Seite, der nur ändert, was diese eine Seite anzeigt. Standardmäßig ist jede echte Tabelle in der verbundenen Datenbank über ajax_crud.php erreichbar; überprüfen Sie beide Arrays vor dem Livegang gegen Ihr eigenes Schema. Das vollständige Modell finden Sie unter Sicherheit: Tabellen & Spalten sperren.

4. $allowedOrigins verschärfen

$allowedOrigins ist die CORS-Whitelist, die steuert, welche Origins ajax_crud.php domänenübergreifend aufrufen dürfen. Der Standard wird mit localhost-Einträgen für die lokale Entwicklung ausgeliefert - schränken Sie ihn vor dem Launch auf Ihre echte(n) Produktivdomäne(n) ein:

public static array $allowedOrigins = ['https://app.example.com'];

Werden Frontend und Backend von unterschiedlichen Origins ausgeliefert, siehe Entkoppelte Frontends & CORS.

5. $demo abschalten

$demo ist standardmäßig true - das fügt jedem Hinzufügen-/Bearbeiten-Formular einen "View Code"-Button hinzu, der Besuchern den rohen PHP-Quellcode der Seite zeigt, die es definiert hat. Nützlich für einen öffentlichen Spielplatz, nicht für ein echtes Deployment, bei dem der Seitenquellcode nicht gegenüber Endnutzern offengelegt werden sollte:

public static bool $demo = false;

6. Bestätigen, dass mod_rewrite wirklich aktiv ist

Jede Anfrage läuft über eine einzige Rewrite-Regel in der projekteigenen .htaccess durch core/router.php. Bestätigen Sie, dass Ihre Produktiv-Apache-Konfiguration sie tatsächlich beachtet:

  • mod_rewrite aktiviert.
  • AllowOverride All für das Document Root gesetzt, damit .htaccess überhaupt gelesen wird - manche Hoster stellen dies standardmäßig auf None, wodurch jede saubere URL stillschweigend zu einem 404 wird.