Nous fournissons des mises à jour de sécurité pour les versions suivantes de Tekwork :
| Version | Supportée |
|---|---|
| 0.3.x | ✅ |
| 0.2.x | ✅ |
| 0.1.x | ❌ |
Nous prenons la sécurité de Tekwork au sérieux. Si vous découvrez une vulnérabilité de sécurité, merci de nous la signaler de manière responsable.
- NE PAS créer une issue publique sur GitHub
- Envoyer un message privé via les GitHub Issues en utilisant la fonctionnalité "Security Advisory"
- Ou contacter directement @Florian418
Pour nous aider à comprendre et résoudre le problème rapidement, veuillez inclure :
- Type de vulnérabilité (XSS, injection SQL, CSRF, etc.)
- Localisation (fichier et ligne de code concernés)
- Impact potentiel (quels dommages pourraient être causés)
- Preuve de concept (PoC) ou étapes pour reproduire
- Version affectée (quelle version de Tekwork est concernée)
- Environnement (PHP version, OS, etc.)
- Confirmer la réception de votre rapport sous 48 heures
- Vous tenir informé de l'avancement de la résolution
- Vous créditer dans le changelog de la version corrigée (si vous le souhaitez)
- Ne divulguez pas publiquement la vulnérabilité avant qu'elle ne soit corrigée
- N'exploitez pas la vulnérabilité au-delà de ce qui est nécessaire pour la démonstration
- Ne testez pas sur des systèmes en production sans autorisation
Si vous utilisez Tekwork pour votre projet, voici les recommandations essentielles :
// config.php - PRODUCTION
return [
'debug' => false, // ⚠️ TOUJOURS false en production
'error_views_path' => path_it(ROOT, 'app', 'views', 'errors'),
'log_path' => path_it(ROOT, 'log', 'app_errors.log'),
];Toujours échapper les sorties HTML :
// ✅ BON
echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');
// ❌ MAUVAIS
echo $user_input;Utilisez les SecurityPatterns pour valider les paramètres :
use Tekwork\SecurityPatterns;
$router->add(
(new Road('article/{:slug}', 'App\Controllers@ArticleController:show', 'article.show'))
->rule('slug', SecurityPatterns::SLUG) // Valide le format
);- ✅ Utilisez
config.phppour les secrets (il est dans.gitignore) - ❌ Ne hardcodez JAMAIS de mots de passe ou clés API dans le code
- ❌ Ne versionnez JAMAIS
config.phpsur Git
Assurez-vous que les permissions sont correctes :
# Dossiers
chmod 755 app/ src/ public/
chmod 750 log/
# Fichiers
chmod 644 public/*.php app/*.php
chmod 640 config.phpTekwork n'implémente pas encore la protection CSRF nativement. Pour des formulaires sensibles, implémentez-la manuellement :
// Générer un token
session_start();
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
// Dans le formulaire
echo '<input type="hidden" name="csrf_token" value="' . $_SESSION['csrf_token'] . '">';
// Vérification
if (!hash_equals($_SESSION['csrf_token'], $_POST['csrf_token'] ?? '')) {
die('CSRF token invalide');
}Aucune vulnérabilité critique connue à ce jour.
- CSRF Protection : Non implémentée nativement (à faire manuellement)
- Rate Limiting : Non implémenté (utilisez un middleware externe)
- Validation des inputs : À implémenter dans vos contrôleurs
Les correctifs de sécurité sont publiés dès que possible via :
- Nouvelles versions sur GitHub (releases)
- Changelog dans le fichier
CHANGELOG.md - Notifications via les GitHub Security Advisories
# Vérifier la version actuelle
composer show tekwork/framework
# Mettre à jour vers la dernière version
composer update tekwork/framework
# Ou spécifier une version
composer require tekwork/framework:^0.3.0Tekwork est un projet d'apprentissage et n'a pas été audité professionnellement.
Pour des applications critiques (finance, santé, données sensibles), nous recommandons :
- Un audit de sécurité professionnel
- L'utilisation de frameworks matures (Laravel, Symfony)
- Des tests de pénétration
Nous remercions les chercheurs en sécurité qui signalent de manière responsable les vulnérabilités :
- (Aucun pour le moment)
Merci de contribuer à la sécurité de Tekwork ! 🛡️