[plugin]name=Bash Exec Plugindesc=Exécute des scripts bash avec validation sécuriséeauthor=Votre Nomemail=votre@email.comurl=https://votre-site.comdate=2026-03-12version=1.0.0
</adm>
2. helper.php (Fonctions utilitaires)
<?php/**
* Helper class for Bash Exec Plugin
*/class helper_plugin_bashexec extends DokuWiki_Plugin {/**
* Validation stricte des arguments
*/publicfunction validateArgument($arg){// Autorise uniquement alphanumérique, tirets et underscoresif(!preg_match('/^[a-zA-Z0-9_-]{1,50}$/',$arg)){returnfalse;}returntrue;}/**
* Validation du chemin du script
*/publicfunction validateScriptPath($path){$allowedPaths=array(
DOKU_PLUGIN .'bashexec/scripts/','/usr/local/bin/');foreach($allowedPathsas$allowed){if(strpos($path,$allowed)===0){returntrue;}}returnfalse;}/**
* Journalisation des exécutions
*/publicfunction logExecution($script,$args,$returnCode,$user){$logFile= DOKU_LOG .'/bashexec.log';$timestamp=date('Y-m-d H:i:s');$entry=sprintf("[%s] User: %s | Script: %s | Args: %s | Return: %d\n",$timestamp,$user,basename($script),implode(' ',$args),$returnCode);file_put_contents($logFile,$entry, FILE_APPEND);}/**
* Vérification des permissions
*/publicfunction checkPermissions(){global$USERINFO;// Vérifie si l'utilisateur est connectéif(!isset($USERINFO['name'])){returnfalse;}// Optionnel : Restreindre à certains groupes$allowedGroups=$this->getConf('allowed_groups');if($allowedGroups){$userGroups=explode(',',$allowedGroups);foreach($userGroupsas$group){if(in_array(trim($group),$USERINFO['groups'])){returntrue;}}returnfalse;}returntrue;}}
++++
3. syntax.php (Syntaxe dans les pages wiki)
3. syntax.php (Syntaxe dans les pages wiki)
lumo/creation_complete_du_plugin_dokuwiki.1773311196.txt.gz · Dernière modification : de estro