Joomla (22)
Partage de trucs & astuces, codes source, composants intéressants ou indispensables, ... dans l'univers merveilleux de Joomla.
Et vous, c'est quoi votre couple login-mot de passe ?
Écrit par ChristopheSuite à un article que Stéphane a partagé sur Facebook concernant le piratage et la technique du brute-force, il m'a semblé intéressant de rédiger ce billet pour vous présenter ma manière de gérer mes mots de passe sur le web.
Je vais vous poser une petite question dont la réponse semble évidente : connaissez-vous vos mots de passe sur le web ? Si vous répondez oui, vous avez tout faux.
En effet, si vous connaissez votre mot de passe, c'est que ce dernier est logique et s'il est logique, c'est qu'un programme informatique peut le deviner. C'est ce qu'on appelle le "brute force" : utiliser un dictionnaire qui n'est rien d'autre qu'un fichier qui contient des milliers de mots quelconques et le programme essaie les mots un par un jusqu'au moment où il trouve le bon. Cette liste de mots reprend bien évidemment les célèbres "admin", "password", "secret", ... qui sont encore utilisés comme mot de passe par des, oui, on peut les appeler comme cela, des inconscients.
Imaginez le gars qui a comme login "admin" et comme mot de passe "admin" : avec une attaque brute-force, au mieux, son accès est compromis en moins de cinq secondes.
Alors, quelle est ma proposition ?
Depuis plusieurs années maintenant, c'est simple : je ne connais pas mes mots de passe. Ils sont tous générés de manière presque aléatoires et font tous vingt caractères de long. Mes mots de passes sont tous du type "zE0szS9A;VSb#9lkG?0B" et tous uniques. Est-ce que vous pourriez vous en souvenir ?
Mes mots de passes sont uniques : ils sont générés selon l'url visitée et d'après une clef que j'ai introduite et qui, en fait, est le seul mot de passe que je connais. J'utilise pour cela le bookmarklet SuperGenPass. Il s'agit d'un code javascript que l'on "drag&drop" sur sa barre de favoris au même titre qu'une url. Une fois en place, il suffit de se rendre sur un site et de cliquer sur le favori SuperGenPass. Une petite fenêtre va s'afficher et va vous demander d'introduire une clef. Par exemple "JAimeJoomla!". SuperGenPass va générer un mot de passe en prenant en compte l'url et votre clef. Ce mot de passe peut-être configuré pour faire 20 caractères. Pour une même url, le mot de passe est toujours le même.
Rien qu'avec SuperGenPass, vous avez donc déjà une gestion de la sécurité excellente.
Évitez d'utiliser un login tel que "admin" car si le pirate trouve votre login, il a déjà parcouru la moitié du chemin.
Login : Joom!Master
Password : zE0szS9A;VSb#9lkG?0B
Avouez que c'est du lourd ! Bien malin celui qui réussira à hacker votre compte.
L'intérêt d'un bookmarklet réside aussi dans le fait que si vous n'êtes pas sur votre ordinateur, pas de soucis : installer le temps de votre session le bookmarklet puis supprimez-le votre travail achevé. Il n'y a rien à installer sur le pc.
A côté de SuperGenPass, j'utilise également LastPass qui est un coffre-fort dans lequel je stocke tous mes accès. Toutes les données y sont cryptées. L'intérêt ici est de retrouver en un seul lieu l'ensemble de mes comptes, que ce soit des comptes web ou mes accès mails, ftp, bases de données, ...
LastPass propose des plugins pour tous les navigateurs du marché et vous permet, une fois l'url affichée, d'introduire votre login et votre mot de passe pour vous. LastPass propose également un plugin pour Android (payant).
Tant SuperGenPass que LastPass sont gratuits et fonctionnent admirablement bien.
Je vous invite à (re)lire l'article "FileZilla stocke les données login / mot de passe non cryptés : solution" que j'ai écris en avril 2012 et qui propose une solution à ce problème c'est-à-dire à crypter le fichier qui contient les mots de passes de vos connexions FTP et à ne "monter" le disque qui contient ce fichier uniquement lorsque vous en avez besoin. Cryptage + innacessibilité du fichier le rende invulnérable ou presque.
Prendre une archive (zip) des fichiers d'un site; Joomla ou non
Écrit par ChristopheBut du script : prendre un backup des fichiers de votre site depuis une simple url.
Je vous propose le petit code ci-dessous qui m'a grandement facilité la sauvegarde de sites Joomla et non Joomla. La majeure partie du script a été développée par Archan Ghosal (http://ramui.com/articles/php-zip-files-and-directory.html). J'ai ajouté quatre lignes de code (lignes 44 à 47) afin que le script soit autonome et que l'archive soit immédiatement proposée en download par le navigateur.
Comment cela fonctionne ?
- Ouvrez votre éditeur de texte préféré (Notepad++ p.ex.) et créez un nouveau document.
- Copiez/collez le code ci-dessous dans l'éditeur.
- Sauvez le fichier avec l'extension .php (p.ex. "zip.php")
- Ouvrez votre client FTP et connectez-vous sur votre site.
- Uploadez le fichier zip.php dans le dossier que vous désirez archiver (soit la racine du site pour tout archiver soit un sous-dossier).
- Vous pouvez fermer votre client FTP. Ouvrez votre navigateur préféré et écrivez l'url pour qu'elle pointe vers le dossier où se trouve le fichier zip.php (p.ex. monsite.fr/zip.php)
Le script va alors créer une archive nommée backup.zip (voir ligne 45 du script) et va compresser tous les fichiers et tous les dossiers enfants. Au final vous avez une copie parfaite du dossier.
Une fois le fichier zip achevé, votre navigateur va vous le proposer en download.
Veuillez notez que le script "ne sauve que" les fichiers; pas la base de données. Le meilleur outil pour sauvegarder complètement un site Joomla reste Akeeba Backup.
Ne laissez pas le fichier zip.php sur votre site de production car n'importe qui pourrait l'utiliser. Sinon modifiez le code source afin p.ex. de demander un mot de passe ou tout autre mécanisme de protection. Le code est libre; vous pouvez l'adapter en prenant juste soin de mentionner le copyright qui se trouve au début du script.
Script DOS batch pour compresser le dossier courant
Écrit par ChristopheLe script que je vous propose ci-dessous est un fichier .bat pour Windows. Il suffit de copier/coller le script dans p.ex. Notepad puis de sauver le fichier dans un dossier Joomla (ex : c:\site\modules\mod_banners) puis de double-cliquez sur le script afin de l'exécuter et d'obtenir un fichier mod_banners.zip qui reprendra l'archive du dossier et de ses sous-dossiers.
L'intérêt majeur du script est sa simplicité (il suffit de double-cliquer sur le fichier) et sa réutilisation dans un script plus global qui pourrait archiver plusieurs dossiers en une seule fois; chaque dossier racine donnant lieu à un fichier archive.
Ce script a été développé pour le composant AllEvents et je le mets à disposition des utilisateurs de Joomla et, plus globalement, de Windows car ce script n'est en rien limité à un usage Joomla.
Script php pour supprimer tout un dossier parent et les sous-dossiers.
Écrit par ChristopheEn tant que développeur de sites, nul doute qu'il vous est déjà arrivé de créer un site distant pour faire un test ou une demo. Vient assez vite le moment où vous souhaitez supprimer ce site de tests pour en créer un nouveau ou tout simplement faire un peu de nettoyage sur votre serveur web.
Généralement, pour supprimer un site, on se connecte sur son FTP et on supprime les dossiers et les fichiers et là, on voit son client FTP supprimer les fichiers "un par un" et se promener dans chaque dossier du site. C'est long, très long, horriblement long.
Le petit script ci-dessous va supprimer tous les fichiers du dossier dans lequel vous aller le copier : si vous copier/coller ce code php dans un fichier "erase.php" que vous allez positionner dans le dossier racine de votre site web à supprimer, il va faire le travail en deux ou trois secondes max.
Ce script est ULTRA DANGEREUX car il supprime tous les fichiers et les dossiers. Utilisez-le en étant parfaitement conscient de ce que vous faites. Je décline évidemment toute responsabilité en cas d'usage incorrect.
Ce script "ne fait que" supprimer les fichiers et les dossiers; il ne touche pas à la base de données. Lisez le billet "Supprimer plusieurs tables dans MySQL sur base d'un préfixe" si vous souhaitez nettoyer aussi votre base de données.
FileZilla stocke les données login / mot de passe non cryptés : solution
Écrit par Christophe
FileZilla est probablement le meilleur client FTP gratuit dans le monde PC. Toutefois, depuis des années, FileZilla stocke ses données de configuration dans des fichiers xml non cryptés. Énoooorme problème de sécurité car il suffit de récupérer le fichier sitemanager.xml de FileZilla pour obtenir toutes les données pour se connecter sur vos sites FTP.
J'ai longtemps cherché une solution du côté de FileZilla et j'ai aussi commencé à chercher d'autres programmes qui pourraient le remplacer mais quasi tous sont payants.
Restait à trouver une solution gratuite. Et c'est chose faite en utilisant le logiciel de cryptage TrueCrypt ainsi qu'un autre petit programme nommé Link Shell Extension.
Mode d'emploi :
- Téléchargez et installez TrueCrypt.
- Créez votre fichier crypté. Un excellent tutoriel, pas à pas, chez notre ami Korben : http://free.korben.info/index.php/TrueCrypt. Vu qu'il ne s'agit que du stockage de fichiers texte très simple, un fichier de 1 MB est suffisant.
- "Montez" votre fichier crypté comme étant un lecteur disque (p.ex. le disque L:).
- Ouvrez le dossier de FileZilla. Il s'agit du dossier %APPDATA%/FileZilla.
- Déplacer les trois fichiers : filezilla.xml, recentservers.xml et sitemanager.xml vers le disque L:
- Maintenant, parce que FileZilla exige que ses fichiers soient dans son répertoire, il faut trouver une astuce. Le problème est résolu grâce à Link Shell Extensionqui permet d'avoir un fichier à un endroit et de faire croire au système d'exploitation qu'il se trouve aussi à un autre endroit
- Téléchargez Link Shell Extension
- Affichez le dossier sur le disque L: , là où vous avez déplacé les trois fichiers de FileZilla.
- Cliquez avec le bouton de droite de la souris sur le premier fichier, filezilla.xml
- Dans le menu contextuel, vous allez trouver une nouvelle option "Pick Link Source". Cliquez dessus. Rien ne va se passer (comme lorsque vous faites un "Copy" suivi d'un "Paste").
- Allez dans le dossier de FileZilla (%APPDATA%/FileZilla).
- Faites un clic droit et, dans le menu contextuel, choississez "Drop Symbolic Link" (l'équivalent du Paste).
- Répétez ces opérations pour les trois fichiers.
- Visuellement, vous verrez donc dans le répertoire de FileZilla les trois fichiers. Comprenez bien qu'il s'agit d'un lien vers le fichier; pas du fichier lui-même. Si on modifie le fichier depuis le dossier de FileZilla, c'est bien celui du disque L: qui sera modifié.
A ce stade, vous avez un FileZilla sécurisé. Dorénavant, ce que vous devez faire avant d'utiliser FileZilla, c'est de "monter" votre fichier crypté.
Sur mon PC, j'ai mis l'icône vers le fichier crypté de TrueCrypt juste à côté de l'icône vers FileZilla. Je double-clique d'abord sur mon fichier TrueCrypt, je l'associe à un lecteur (toujours le même et donc L:) puis, ceci fait, je lance FileZilla. Et tout fonctionne à merveille.
Si comme moi vous avez plusieurs PCs, il est vite intéressant d'avoir le même fichier de configuration sur chaque PC : si vous modifiez un mot de passe, si vous ajouter une nouvelle machine, ... que ces modifications soient faites sur tous les PCs. Est-ce possible ? OUI. Il suffit de stocker le fichier TrueCrypt que vous avez créé au point 2. ci-dessus dans un dossier de votre Dropbox. Le fichier étant crypté, aucun soucis de confidentialité.
Source : l'idée de l'utilisation de Shell Link Extension provient de l'article "How to use FileZilla with Dropbox?"
Si vous êtes utilisateur de Aptana Studio, lorsque vous créer un nouveau projet afin de programmer votre composant, il est bien utile de pouvoir faire un clic sur le nom d'une fonction/méthode et d'immédiatement arriver dans le code source de la fonction/méthode.
Pour ce faire, il faut activer l'auto-complétion Joomla :
- Dans Aptana, ouvrez votre projet puis cliquez sur le menu "Project"
- Sélectionnez l'option "Properties"
- Dans la liste de gauche, cliquez sur "PHP Buildpath"
- Dans la section de droite, cliquez sur l'onglet "External Directories" pour définir les librairies PHP
- Cliquez sur le bouton "Add" et sélectionnez le dossier nommé "Joomla". Ce dossier se trouve dans le dossier librairies de votre site (p.ex. c:\mes_sites\un_site\librairies\joomla).
- Cliquez sur le bouton "Ok" deux fois afin de confirmer l'ajout.
SCRIPT PHP
Plugins
Modules
A l'instar de la "boîte à outils pour le webmaster", cette liste-ci s'adresse aux développeurs Joomla et reprend quelques-uns des programmes qui pourront leur être très utile durant leurs développements ou après celui-ci.
Les outils ci-dessous sont principalement pour Windows, système d'exploitation que j'utilise.


Il existe tant de logiciels de capture d'écran que faire un choix est difficile. J'aime bien Screenpresso car il permet de "découper" le bas des images, avec un effet de ciseau et de relief bien sympa. Je l'utilise depuis plusieurs mois pour faire les captures d'écran du blog de AllEvents.
Utilitaire de renommage en lot de fichiers
Editeur de texte dont, personnellement, je me sers strictement pour un seul usage : sa fonction de recherche d'une chaîne de caractères dans des fichiers présent sur le disque dur. PSPad fait cela très bien et rapidement.
Outil de comparaison de fichiers : dans le cas où vous avez des fichiers de langue p.e., WinMerge permet de découvrir les différences entre les fichiers, les codes langue se trouvant dans l'un et pas dans l'autre, les codes traduits différemment, ...
Firefox
Sélecteur de couleur : affiche une pipette dans Firefox qui permettra de récupérer la couleur RGB/Hex de l'élément cliqué.
Module tout simple mais bien pratique qui vous permet rapidement de voir si votre page est valide W3C. Propose différent types de vérification dont l'une qui fonctionne en local càd qu'il ne faut pas forcément être connecté sur le web pour que la vérification fonctionne.
Idéalement, une page web ne peut pas contenir de déclaration type script= ou style= càd du code inline javascript ou de feuille de styles. Ce type de code devrait être externalisé dans un fichier .js ou .css.
Client FTP qui vous permettra de vous connecter à votre site, de transférer/télécharger des fichiers, éditer un fichier, ... FileZilla est la référence en la matière.
Gestion de la manière dont Google traite votre site : quelles urls doit-il indexer, quels sont les liens les plus visités sur votre site, ...
GIMP est un logiciel de traitement d'images puissant et pouvant rivaliser avec des grands noms.
Paint .Net est un logiciel de traitement d'images puissant et pouvant rivaliser avec des grands noms.