Secrets e Best Practice

INFO

Le credenziali (license key, password, token Discord, chiavi API) non devono mai finire nel codice client o in repository pubblici.

ObiettivoDettagli
Cosa imparerai• Dove tenere i segreti
• Non committare chiavi su Git
• Configurare .gitignore
• Best practice di hosting
Prerequisiti• Concetti base di hosting (modulo 11)

1. Cosa è un “Secret”

SecretDove vaDove NON deve andare
License key serverserver.cfg (non versionato)client
Password RCON / txAdminconfig privataclient
Token Discord webhookserver.lua / config privataclient
Chiavi API (Tebex, Keymaster)server-side configclient
Database passwordconnessione oxmysqlclient

WARNING

Il codice client è visibile a chiunque (scarica le risorse dal server). Qualsiasi stringa nel client è pubblica. Un webhook Discord nel client permette a chiunque di inviare messaggi come “admin”.


2. Config Server-Side

La convenzione FiveM: shared_scripts carica le stesse variabili anche sul client. Per i segreti usa solo server_scripts.

-- config.lua  → shared (caricato anche dal client: NO segreti qui)
Config = Config or {}
Config.DiscordWebhook = nil   -- non mettere segreti qui!
 
-- config_server.lua → SOLO server_scripts
ConfigServer = ConfigServer or {}
ConfigServer.DiscordWebhook = 'https://discord.com/api/webhooks/...'
-- fxmanifest.lua
shared_scripts {
    '@ox_lib/init.lua',
    'config.lua'          -- senza segreti
}
server_scripts {
    'config_server.lua',  -- segreti solo qui
    'server.lua'
}

3. Git e .gitignore

Se versioni la risorsa con Git, escludi i file con segreti.

# .gitignore
config_server.lua
server.cfg
*.env

IMPORTANT

server.cfg non va MAI committato: contiene license key, password RCON e permessi. Se hai già committato segreti, oltre a rimuoverli devi ruotarli (generarne di nuovi), perché la cronologia Git li conserva.


4. Protezione della Risorsa

Per distribuire risorse senza rivelare il codice, Cfx.re offre Asset Escrow (vedi modulo 17). In locale, ricorda:

  • Gli script client sono sempre leggibili
  • Gli script server possono essere offuscati ma non è una protezione reale
  • La sicurezza vera è nella logica server, non nell’offuscamento

5. Hosting Best Practice

PraticaPerché
Password forte per txAdmin/RCONAccesso non autorizzato = server in mano all’attaccante
Aggiorna artifacts regolarmenteFix di sicurezza inclusi negli update
Cambia password se qualcuno lascia lo staffEx-staff con accesso = rischio
Usa SSH/FTP sicuroCredenziali non in chiaro
Backup fuori dal serverRipristino rapido dopo attacchi/danni

6. Verifica di Sicurezza Completa (server RP)

  • Nessun secret nel client
  • config_server.lua non committato
  • server.cfg non nel repo
  • Webhook Discord solo server-side
  • Password txAdmin/RCON forti e ruotate
  • License key mai condivisa

Modulo Sicurezza completato! Prossimo modulo: 13 - Performance


Torna alla: Indice Generale