/

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_rewrite abilitato.
  • AllowOverride All impostato per la document root, così .htaccess viene letto - alcuni host lo impostano di default su None, il che fa silenziosamente restituire 404 a ogni URL pulito.