Releases: skylidefr/WooCommerce-Server-Game-RCON
Release list
v1.0.2
v1.0.2 - Corrections de bugs critiques
🐛 Bugs critiques corrigés
Sécurité
- SQL Injection : Utilisation de
$wpdb->prepare()avecesc_like()pour toutes les requêtes de nettoyage - Rate limiting : Throttle JavaScript côté client (1 requête/seconde minimum)
Stabilité
- Race conditions : Remplacement des transients par des locks atomiques avec
flock() - Fuite de ressources : Fermeture garantie de tous les sockets dans des blocks
finally - Memory leak : Nettoyage des logs optimisé avec
SplFileObjectau lieu de charger tout en RAM
Performance
- Timeout imprécis : Utilisation de
microtime(true)au lieu detime()pour des timeouts au milliseconde près - Logs volumineux : Rotation automatique sans saturer la mémoire
Compatibilité
- PHP 7.4 : Remplacement de
str_starts_with()parstrpos() === 0 - JSON : Validation stricte avec
json_last_error()après chaquedecode
📋 Détails techniques
Avant (v1.0.1)
// Race condition possible
if (get_transient($lock_key)) return;
set_transient($lock_key, time(), 120);Après (v1.0.2)
// Lock atomique
$lock_handle = fopen($lock_file, 'c');
if (!flock($lock_handle, LOCK_EX | LOCK_NB)) return;
try {
// Code protégé
} finally {
flock($lock_handle, LOCK_UN);
fclose($lock_handle);
}🔄 Migration
Aucune action requise. La mise à jour est rétrocompatible.
⚠️ Important
Cette version corrige des bugs qui pouvaient causer :
- Envoi de commandes en double lors de pics de trafic
- Blocages serveur sur timeouts réseau
- Saturation mémoire avec logs volumineux
- Injection SQL potentielle lors de la désactivation
👉 Mise à jour fortement recommandée pour tous les utilisateurs.
📝 Changelog complet
- fix: Lock atomique avec flock() pour éliminer race conditions
- fix: Timeout précis avec microtime(true) au lieu de time()
- fix: Fermeture garantie des sockets dans finally blocks
- fix: Nettoyage logs optimisé avec SplFileObject (évite OOM)
- fix: Validation JSON avec json_last_error() après decode
- fix: SQL injection dans cleanup avec $wpdb->prepare()
- fix: Compatibilité PHP 7.4 (remplacement str_starts_with)
- fix: Rate limiting côté client (throttle 1 req/sec)
- fix: Nettoyage complet des ressources à la désactivation
🧪 Tests
Testé sur :
- PHP 7.4, 8.0, 8.1, 8.2
- WordPress 6.0+
- WooCommerce 7.0+ (HPOS activé et désactivé)
- Valheim Dedicated Server
📚 Documentation
La documentation complète est disponible sur le README.
🤝 Contribution
Merci à la communauté pour les rapports de bugs et les tests.
v1.0.1
Release v1.0.1 - Valheim Optimization
Optimisations spécifiques Valheim
Cette version corrige et optimise le plugin pour une compatibilité parfaite avec les serveurs Valheim.
Nouvelles fonctionnalités
- Champ SteamID64 : Ajout d'un champ optionnel au checkout pour collecter le SteamID64 des joueurs
- Validation automatique (17 chiffres commençant par 7656119)
- Variable {steam_id} disponible dans les commandes RCON
- Essentiel pour les commandes admin Valheim (kick, ban, permit)
Corrections majeures
- Port par défaut corrigé : 2457 (Valheim RCON) au lieu de 28016 (Rust)
- Timeout augmenté : 10 secondes par défaut au lieu de 3 (les serveurs Valheim sont plus lents)
- Timeout minimum : Passage de 1s à 5s pour éviter les timeouts prématurés
- Commande de test : Utilisation de "info" au lieu de "echo test" (compatible Valheim)
- Lecture RCON : Timeout de lecture augmenté à 10 secondes
Améliorations de stabilité
- Système de lock robuste : Remplacement de wp_cache par transients pour éviter les doublons
- Protection contre les race conditions
- Lock de 2 minutes au lieu de 1
- Fonctionne même sans object cache configuré
- Affichage logs optimisé : Limitation à 100 dernières lignes pour éviter saturation mémoire
- Validation renforcée : Filtrage côté serveur de tous les champs utilisateur
Documentation améliorée
- Ajout d'exemples de commandes Valheim dans l'interface produit
- Warning sur les limitations de Valheim RCON (pas de liste de joueurs)
- Documentation des variables disponibles
- Notes sur les commandes fiables (broadcast, say) vs commandes nécessitant SteamID
Corrections de bugs
- Correction de l'encodage UTF-8 dans les commentaires
- Validation manquante de maxlength côté serveur
- Protection contre les commandes avec caractères dangereux
Configuration recommandée pour Valheim
Port RCON : 2457
Timeout : 10-15 secondes
Commandes fiables : broadcast, say, save
Variables : {game_username}, {steam_id}, {billing_first_name}, {order_id}
Breaking Changes
Aucun - Cette version est rétrocompatible avec la v1.0.0
Migration depuis v1.0.0
Aucune action requise. Les anciennes configurations sont automatiquement migrées.
Installation
- Télécharger le fichier ZIP depuis les releases
- Installer via WordPress Admin > Extensions > Ajouter
- Activer le plugin
- Configurer vos serveurs RCON dans Réglages > Server Game RCON
Remerciements
Merci à la communauté Valheim pour les retours sur les timeouts et le comportement RCON.
Compatibilité : WordPress 5.8+, WooCommerce 6.0+, PHP 7.4+
Testé avec : Valheim Dedicated Server + Valheim RCON mod