WP Manifestindependent plugin directory
manifest / security / wordpress-asi-security

ASI Security

Plugin WordPress de sécurité : blocage basique des injections SQL et protection CSRF côté admin.

by GVG · github.com/yoalgrin/wordpress-asi-security

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/yoalgrin/wordpress-asi-security/archive/refs/heads/main.zip

ASI Security est un plugin WordPress d’apprentissage dédié à l’exploration de mécanismes de sécurité Web : détection de patterns SQLi, journalisation en base, vérification CSRF côté admin et gestion optionnelle d’un mode XSS.

Contexte

Ce plugin a été initialement développé dans un cadre pédagogique pour comprendre :

le fonctionnement interne des hooks WordPress, l’utilisation sécurisée de l’API wpdb, la validation/sanitization des entrées, et la mise en place d’un cycle de vie complet de plugin (activation / désinstallation propre). Au fil des tests, des limites ont été identifiées (regex insuffisantes, faux positifs…) et le plugin a été étendu avec : un système de logs détaillés en base, une whitelist IP / User-Agent, un mode “Log only”, une interface d’administration,

plusieurs niveaux de sensibilité.

⚠️ Note importante:

Ce plugin est un outil pédagogique et ne remplace pas un WAF, un reverse proxy (ModSecurity) ou les mécanismes natifs de protection (requêtes préparées, ORM…). Il illustre des concepts, il ne cherche pas à couvrir l’ensemble des problématiques de sécurité WordPress.

🚀 Installation (développeur·euse)

  1. Cloner le dépôt dans wp-content/plugins/asi-security :
    cd wp-content/plugins
    git clone <URL_DU_DEPOT> asi-security
  2. Aller dans l’admin WordPress → ExtensionsActiver “ASI Security”.

🧪 En local (WAMP/MAMP/Laragon/Docker)

  • Place le dossier du plugin dans wp-content/plugins/ de ton WordPress local.
  • Active le plugin depuis l’admin.
  • Regarde le fichier principal : asi-security-plugin/anti-sqli/anti-sqli.php

📁 Contenu du dépôt

asi-security-plugin/
    anti-sqli/
        anti-sqli.php
        doc.text
        uninstall.php
        admin/
            class-asi-admin.php
            index.php
            views/
                csrf-page.php
                index.php
                settings-page.php
        includes/
            class-asi-activator.php
            class-asi-deactivator.php
            class-asi-guard.php
            handlers.php
            helpers.php
            index.php

⚙️ Compatibilité

  • WordPress 6.x
  • PHP 8.x

📝 Développement

  • Code simple, lisible, sans dépendances.
  • N’hésite pas à ouvrir une issue pour signaler un bug ou proposer une amélioration.

🧩 TODO / Améliorations prévues

Pistes d’amélioration et correctifs identifiés lors d’un audit rapide. J’ajoute pour chaque item une courte note sur la priorité (H = haute, M = moyenne, L = faible).

  • [ ] Corriger la whitelist (helpers.php) : incohérence entre clés ip_whitelist / whitelist_ips.
  • [ ] Unifier le Text Domain (asi-security) et charger via load_plugin_textdomain().
  • [ ] Sécuriser les actions admin avec current_user_can() + check_admin_referer().
  • [ ] Ajouter un mode "Log only" (enregistrer sans bloquer).
  • [ ] Ajouter un niveau de sensibilité (Off / Log / Block / Paranoid).
  • [ ] Exporter les logs en CSV depuis la page d’admin.
  • [ ] Ajouter des nonces sur tous les formulaires pour éviter le CSRF.
  • [ ] Mettre à jour la documentation TESTS.md avec les cas d’essai (SQLi, CSRF, whitelist).
  • [ ] Captures d’écran : interface admin + page des logs.
  • [ ] Option “Settings” sur la ligne du plugin dans l’admin WordPress.
  • [ ] Refactor regex SQLi pour réduire les faux positifs.

📄 Licence

MIT — fais-en bon usage avec attribution.


Auteur : GVG — v1.0.0