SecurePHP est une bibliothèque PHP légère pour sécuriser vos applications web. Elle fournit des fonctionnalités de protection CSRF, sécurisation de session, et inclut des helpers pour gérer les fichiers et les requêtes
-
Copier le dossier
src/ettest/dans votre projet. -
Inclure les fichiers nécessaires via
require_once(ou autoload personnalisé) :
require_once __DIR__ . '/src/Session.php';
require_once __DIR__ . '/src/Logger.php';
require_once __DIR__ . '/src/Sanitizer.php';
require_once __DIR__ . '/src/CSRF.php';
require_once __DIR__ . '/src/Security.php';
require_once __DIR__ . '/src/Helpers/FileHelper.php';
require_once __DIR__ . '/src/Helpers/RequestHelper.php';- Initialiser la sécurité au début de chaque page :
use SecurePHP\Security;
use SecurePHP\Session;
Session::start(); // Démarre la session
$security = new Security();
$security->autoProtect(); // Applique la sanitization, CSRF, session hardening et headers- Protection CSRF dans un formulaire
<form method="post" action="">
<?= \SecurePHP\CSRF::inputField() ?>
<input type="text" name="username" required>
<input type="email" name="email" required>
<input type="password" name="password" required>
<button type="submit">S'inscrire</button>
</form>Le token CSRF est automatiquement vérifié grâce à Security::autoProtect().
- Helpers
FileHelper
use SecurePHP\Helpers\FileHelper;
if (FileHelper::isSafeFile($_FILES['avatar']['name'])) {
$safeName = FileHelper::sanitizeFileName($_FILES['avatar']['name']);
}RequestHelper
use SecurePHP\Helpers\RequestHelper;
$username = RequestHelper::post('username');
$email = RequestHelper::post('email');
$ip = RequestHelper::clientIP();- Test du Sanitizer
php test/SanitizerTest.phpExemple de sortie :
=== TEST Sanitizer ===
Résultat nettoyé : <script>alert(1)</script>- Test de Security + CSRF
php test/SecurityTest.phpExemple de sortie :
=== TEST SecurePHP ===
CSRF Token généré : 3b9f... (token aléatoire)📝 Notes
- Les logs de sécurité sont stockés dans logs/security.log.
- Les sessions sont renforcées (harden()) : régénération ID, IP/User-Agent bind.
- Les entrées utilisateurs sont automatiquement nettoyées contre XSS.
- CSRF token à usage unique avec expiration configurable (15 minutes par défaut).
- Helpers pour fichiers et requêtes sécurisent vos uploads et données POST/GET.