Les langages Sécurité FiveM Données et fuites
Ce qui fuit vers les joueurs
Une fuite n'a pas besoin d'attaque : il suffit d'envoyer une information à quelqu'un qui ne devait pas la recevoir.
-1 veut dire « tout le monde »
TriggerClientEvent('journal:ligne', -1, 'Alyx a retiré 5000 $')
La cible -1 envoie le message à chaque joueur connecté. Même si seule
l'interface d'administration l'affiche, le message arrive chez tous, et
n'importe quel client modifié peut le lire. Un journal d'administration, une
position, un inventaire s'envoient joueur par joueur, à ceux qui y ont
droit :
for _, id in ipairs(GetPlayers()) do
if IsPlayerAceAllowed(id, 'journal.voir') then
TriggerClientEvent('journal:ligne', id, texte)
end
end
GetPlayers() renvoie les numéros des joueurs connectés, sous forme de
textes ; les natives les acceptent tels quels.
Les fichiers client sont publics
Tout fichier listé dans client_scripts ou files d'un fxmanifest.lua est
téléchargé par chaque joueur. Une clé d'API, un webhook, une requête SQL
placés là sont lisibles par tous, même si le code « ne les affiche pas ».
Et, comme vu dans la branche cfg, une convar posée avec setr est lisible par
chaque client. Un secret se pose avec set et ne se lit que côté serveur.
1 exercice pour cette lecon
Les exercices demandent un compte : il faut bien enregistrer votre progression quelque part. La lecture, elle, reste libre. Creer un compte
-
Le journal ne part pas chez tout le monde moyen lecon a valider