Distribuzione in produzione
Una checklist pre-lancio - tutto ciò in src/Config.php che per impostazione predefinita ha un valore comodo per lo sviluppo locale, non per la produzione.
1. Imposta credenziali del database reali
In src/Config.php, punta XcrudConfig verso il tuo database di produzione, non quello locale usato durante lo sviluppo:
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. Genera un $appSecret robusto
$appSecret è la chiave HMAC che firma ogni condizione where()/subselect()/pass_var() e ogni payload di condizione logica inviato al browser. La firma permette a quei valori di viaggiare attraverso il client in modo sicuro - ajax_crud.php rifiuta di applicare un valore la cui firma non corrisponde. Se questo segreto trapela (o viene lasciato al valore predefinito), chiunque può falsificare un valore firmato e aggirare la restrizione che avrebbe dovuto imporre - ad esempio modificando un URL per uscire dal vincolo where('status', '=', 'active') proprio di una pagina.
public static string $appSecret = 'change-this-secret-before-production';
Sostituiscilo con una stringa lunga, casuale e univoca per l'installazione - ad esempio l'output di bin2hex(random_bytes(32)) - e non effettuare mai il commit del valore reale nel controllo versione.
3. Rivedi il confine di sicurezza
$blacklistedTables e $blacklistedColumns in src/Config.php sono il vero confine di sicurezza dell'installazione - non la chiamata ->columns() di una singola pagina, che cambia solo cosa quella pagina mostra. Ogni tabella reale nel database connesso è raggiungibile tramite ajax_crud.php per impostazione predefinita; rivedi entrambi gli array rispetto al tuo schema prima di andare in produzione. Vedi Sicurezza: blacklist di tabelle e colonne per il modello completo.
4. Restringi $allowedOrigins
$allowedOrigins è la whitelist CORS che controlla quali origini possono chiamare ajax_crud.php in modalità cross-domain. Il valore predefinito include voci localhost per lo sviluppo locale - restringile al tuo/i dominio/i di produzione reale/i prima del lancio:
public static array $allowedOrigins = ['https://app.example.com'];
Vedi Frontend disaccoppiati e CORS se il tuo frontend e backend sono serviti da origini diverse.
5. Disattiva $demo
$demo è true per impostazione predefinita, il che aggiunge un pulsante "Visualizza codice" a ogni modulo di aggiunta/modifica che mostra ai visitatori il codice sorgente PHP grezzo della pagina che l'ha definito - utile per un playground pubblico, non per una distribuzione reale dove il sorgente della pagina non dovrebbe essere esposto agli utenti finali:
public static bool $demo = false;
6. Conferma che mod_rewrite sia davvero attivo
Ogni richiesta passa attraverso core/router.php tramite un'unica regola di riscrittura nel file .htaccess del progetto. Conferma che la tua configurazione Apache di produzione la rispetti davvero:
mod_rewriteabilitato.AllowOverride Allimpostato per la document root, così.htaccessviene letto - alcuni host lo impostano di default suNone, il che fa silenziosamente restituire 404 a ogni URL pulito.