16/11/2012, 11:57:49
Salut tout le monde
J'ai un peu du mal en ce moment à prendre du recul (trop la tête dans le guidon) et j'ai eu une idée de module pour combler un besoin technique que je n'arrive pas trop à délimiter... Je me suis dit que 2 têtes valent mieux qu'une, surtout si ça peut m'éviter de commencer un module qui sera inutilisé
L'idée initiale démarre suite à un post sur le forum de Spy1664 qui demandait en synthèse la génération d'un event à chaque upload de fichier dans JqueryFU ce qui n'était pas possible.
Alors j'ai commencé à réfléchir à comment on pouvait résoudre ce problème avant de me rendre compte que Cmsms avait déjà toutes les briques pour ce genre de chose (Module Notifications, les Events, Cron Task) sauf que rien ne permet actuellement d'interfacer ce genre d'action (le cron exécute une action X qui peut déclencher un Event qui sera catché à son tour par le module Notification qui enverra un email). Pire encore, si un module X faisait le pont, cela resterait très lourds d'aller jouer dans 4 parties de l'administration, juste pour scruter un répertoire...
En parallèle de toute cette réflexion je suis retombé sur ce message de Jean Le Chauve qui donne un script qui scrute les modifications d'un répertoire afin d'alerter d'éventuelles modifications cette fois ci dans un but de sécurité. Mais le principe reste le même : on scrute un répertoire ...
Et continuons un peu dans le domaine de la sécurité ... vous êtes certainement comme moi avec une foule de site web créés aux 4 coins de la terre et pas forcement la possibilité de tous les mettre à jour à chaque nouvelle version, vous pensez peut-être à modifier le répertoire admin mais combien d'entre vous le font. Et même avec une admin renommée, comment s'assurer qu'une attaque brute force n'est pas en cours ? Cmsms propose déjà tous les composants : un cron peut lancer la vérification d'une nouvelle version (c'est déjà le cas), les events peuvent catcher un login failed ou success, le module Notification permet l'envoi d'email
Encore une fois il manque un noyau au milieu de toutes ces étapes qui après ces petites réflexions sont très semblables : réaliser un module qui gère 2 phases : définir le déclencheur, définir l'action.
Exemple de déclencheur :
- Toutes les minutes
- Toutes les heures
- Un event qui se déclenche
Exemple d'action basique
- Envoyer un email
- Vider le cache
Exemple d'action évoluée
- Déclencher un/des autre(s) évent(s) après avoir exécuté un script php
On retrouve donc la possibilité de chainer les évènements de manière très complexes :
Routine : si 3 échec d'authent : envoi moi un email
Ces 3 scripts seraient donc définit dans une routine nommée "secureLogin" qui pourrait être exportée sous la forme d'un fichier plat et permettrait donc de dupliquer vos propres scripts d'un site à un autre
Routine : prévois moi tous les 7 jours si une nouvelle version existe
Routine : préviens un utilisateur FEU si la date de fin de validité de son compte expire dans 60,30,15,7,3,1 jours
On peut aller trèèèèès loin avec ce genre de combinaison et là se pose le problème : est-ce que ce serait réellement utilisé ?
On pourrait, en même temps que le module, proposer des scripts tout fait prêts à l'emploi : avertir si un site se fait attaquer, avertir si un fichier a été modifier dans un répertoire, dans tout cmsmadesimple, vider le cache tous les 3 jours si la place sur le disque arrive à saturation, ...
J'ai un peu du mal en ce moment à prendre du recul (trop la tête dans le guidon) et j'ai eu une idée de module pour combler un besoin technique que je n'arrive pas trop à délimiter... Je me suis dit que 2 têtes valent mieux qu'une, surtout si ça peut m'éviter de commencer un module qui sera inutilisé
L'idée initiale démarre suite à un post sur le forum de Spy1664 qui demandait en synthèse la génération d'un event à chaque upload de fichier dans JqueryFU ce qui n'était pas possible.
Alors j'ai commencé à réfléchir à comment on pouvait résoudre ce problème avant de me rendre compte que Cmsms avait déjà toutes les briques pour ce genre de chose (Module Notifications, les Events, Cron Task) sauf que rien ne permet actuellement d'interfacer ce genre d'action (le cron exécute une action X qui peut déclencher un Event qui sera catché à son tour par le module Notification qui enverra un email). Pire encore, si un module X faisait le pont, cela resterait très lourds d'aller jouer dans 4 parties de l'administration, juste pour scruter un répertoire...
En parallèle de toute cette réflexion je suis retombé sur ce message de Jean Le Chauve qui donne un script qui scrute les modifications d'un répertoire afin d'alerter d'éventuelles modifications cette fois ci dans un but de sécurité. Mais le principe reste le même : on scrute un répertoire ...
Et continuons un peu dans le domaine de la sécurité ... vous êtes certainement comme moi avec une foule de site web créés aux 4 coins de la terre et pas forcement la possibilité de tous les mettre à jour à chaque nouvelle version, vous pensez peut-être à modifier le répertoire admin mais combien d'entre vous le font. Et même avec une admin renommée, comment s'assurer qu'une attaque brute force n'est pas en cours ? Cmsms propose déjà tous les composants : un cron peut lancer la vérification d'une nouvelle version (c'est déjà le cas), les events peuvent catcher un login failed ou success, le module Notification permet l'envoi d'email
Encore une fois il manque un noyau au milieu de toutes ces étapes qui après ces petites réflexions sont très semblables : réaliser un module qui gère 2 phases : définir le déclencheur, définir l'action.
Exemple de déclencheur :
- Toutes les minutes
- Toutes les heures
- Un event qui se déclenche
Exemple d'action basique
- Envoyer un email
- Vider le cache
Exemple d'action évoluée
- Déclencher un/des autre(s) évent(s) après avoir exécuté un script php
On retrouve donc la possibilité de chainer les évènements de manière très complexes :
Routine : si 3 échec d'authent : envoi moi un email
Citation : * J'ai un login success => compteurFail = 0
* J'ai un login failed => si (compteurFail < 3) => compteur ++
* J'ai un login failed => si (compteurFail > 3) => send email => compteur = 0
Ces 3 scripts seraient donc définit dans une routine nommée "secureLogin" qui pourrait être exportée sous la forme d'un fichier plat et permettrait donc de dupliquer vos propres scripts d'un site à un autre
Routine : prévois moi tous les 7 jours si une nouvelle version existe
Citation : * Timer 1 jour se déclenche => si nouvelleVersion => si lastEnvoi == 0 OU lastEnvoi > 7 => send Email => lastEnvoi = 1
* Timer 1 jour se déclenche => si nouvelleVersion => si 0 < lastEnvoi < 7 => lastEnvoi++
Routine : préviens un utilisateur FEU si la date de fin de validité de son compte expire dans 60,30,15,7,3,1 jours
Citation : * Timer 1 jour se déclenche => si dateExpire == 60 => sendEmail(emailUser)
* ...
On peut aller trèèèèès loin avec ce genre de combinaison et là se pose le problème : est-ce que ce serait réellement utilisé ?
On pourrait, en même temps que le module, proposer des scripts tout fait prêts à l'emploi : avertir si un site se fait attaquer, avertir si un fichier a été modifier dans un répertoire, dans tout cmsmadesimple, vider le cache tous les 3 jours si la place sur le disque arrive à saturation, ...