cocoon-projet / http
server request basé sur laminas diactoros
0.0.2
2025-04-05 10:31 UTC
Requires
- php: ^8.0
- cocoon-projet/control: ^0.0.1
- laminas/laminas-diactoros: ^3.2
- laminas/laminas-httphandlerrunner: ^2.5
- psr/http-server-middleware: ^1.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^9
- squizlabs/php_codesniffer: ^3.3
- tracy/tracy: ^2.10
This package is auto-updated.
Last update: 2025-04-09 06:37:25 UTC
README
Composant HTTP avec Protection CSRF
Ce composant PHP fournit une implémentation robuste pour la gestion des requêtes HTTP et la protection CSRF (Cross-Site Request Forgery). Il est construit selon les standards PSR-7 et PSR-15, offrant une solution moderne et sécurisée pour vos applications web.
Caractéristiques
- 🛡️ Protection CSRF intégrée
- 🔄 Middleware Pipeline PSR-15
- 🎯 Routage simple et efficace
- 🔒 Gestion sécurisée des sessions
- ✨ Façades pour une utilisation simplifiée
- 🧪 Tests unitaires complets
Installation
composer require cocoon-projet/http
Configuration requise
- PHP 7.4 ou supérieur
- Composer
- Extension PHP session activée
Utilisation rapide
1. Configuration de base
use Cocoon\Http\Application; use Cocoon\Http\Facades\Request; use Cocoon\Http\Middleware\CsrfMiddleware; // Démarrer la session session_start(); // Créer l'application $app = new Application(); // Initialiser la requête $request = Request::init();
2. Protection CSRF
// Configuration du middleware CSRF $excludedPaths = [ '#^/api/webhook#', '#^/api/external#' ]; $csrfMiddleware = new CsrfMiddleware($excludedPaths); // Ajouter le middleware à l'application $app->add($csrfMiddleware);
3. Utilisation dans un formulaire
<form method="POST" action="/submit"> <!-- Ajouter le token CSRF --> <input type="hidden" name="csrf_token" value="<?php echo Session::get('token')[0]['value'] ?? ''; ?>"> <!-- Vos champs de formulaire --> </form>
Architecture
Composants principaux
-
Application
- Gère le pipeline de middleware
- Traite les requêtes entrantes
-
HttpRequest
- Implémente PSR-7 ServerRequestInterface
- Gère les données de requête ($_GET, $_POST, etc.)
-
Middleware
- CsrfMiddleware : Protection contre les attaques CSRF
- RouterMiddleware : Gestion des routes
- NotFoundMiddleware : Gestion des pages 404
-
Façades
- Request : Accès simplifié aux données de requête
- Session : Gestion des sessions
- Response : Création et envoi de réponses
Exemples d'utilisation
Récupération des données de requête
// Données GET $value = Request::query('param'); // Données POST $value = Request::input('field'); // Sélection de champs spécifiques $data = Request::only(['username', 'email']);
Gestion des sessions
use Cocoon\Http\Facades\Session; // Définir une valeur Session::set('key', 'value'); // Récupérer une valeur $value = Session::get('key'); // Message flash Session::setFlash('success', 'Opération réussie');
Tests
Pour exécuter les tests unitaires :
vendor/bin/phpunit
Sécurité
Le composant intègre plusieurs mesures de sécurité :
- Protection CSRF automatique
- Validation des tokens
- Nettoyage des données de session
- Messages d'erreur sécurisés
Contribution
Les contributions sont les bienvenues ! Veuillez :
- Fork le projet
- Créer une branche pour votre fonctionnalité
- Commiter vos changements
- Pousser vers la branche
- Créer une Pull Request
Licence
MIT License. Voir le fichier LICENSE
pour plus de détails.
Support
Pour toute question ou problème :
- Consultez la documentation
- Ouvrez une issue sur GitHub
- Contactez l'équipe de développement
Développé avec ❤️ par l'équipe Cocoon