Skip to content
View securephp's full-sized avatar

Block or report securephp

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
securephp/README.md

SecurePHP

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

⚡ Installation

  1. Copier le dossier src/ et test/ dans votre projet.

  2. 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';
  1. 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

🛡️ Utilisation principale

  1. 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().

  1. 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();

🧪 Tests

  1. Test du Sanitizer
php test/SanitizerTest.php

Exemple de sortie :

=== TEST Sanitizer ===
Résultat nettoyé : &lt;script&gt;alert(1)&lt;/script&gt;
  1. Test de Security + CSRF
php test/SecurityTest.php

Exemple 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.

Popular repositories Loading

  1. securephp securephp Public

    SecurePHP est une bibliothèque PHP légère qui sécurise vos applications web contre XSS, CSRF et attaques de session, avec des helpers pour sécuriser les fichiers et les requêtes. Simple à intégrer …

    PHP 1

  2. securephp-demo securephp-demo Public

    Projet de démonstration pour utiliser SecurePHP, une librairie PHP sécurisant les formulaires et sessions contre XSS, CSRF et autres attaques.

    PHP