AllEvents - A Joomla Component by Christophe Avonture - AllEvents

Vous n'êtes probablement pas sans savoir qu'un site Joomla! est composé d'un grand nombre de fichiers de configuration pour vos templates, composants, modules et plugins.   Ces fichiers de configurations sont des fichiers dont l'extension est .xml; ils sont installés en même temps que les extensions que vous installez sur votre site.   Dans ces fichiers, on retrouve un grand nombre d'informations de paramétrage mais aussi le numéro de version des extensions : ainsi, en écrivant une url qui pointe vers un tel fichier, il est parfaitement possible (et terriblement simple) de déterminer si votre site utilise tel ou tel composant et quelle est la version de ceux-ci.   Il est aussi possible de présumer de la version de Joomla; du moins du numéro majeur de version (1.5 p.ex).


Essayez donc d'accéder au fichier http://xxxxxxxx/administrator/components/com_content/content.xml (remplacer xxxx par votre nom de domaine) : que constatez-vous ?  Vous pouvez afficher le fichier dans votre navigateur et vous pouvez déterminer s'il s'agit d'un site Joomla! 1.5, 2.5 ou 3.0.   Est-ce grâve ?  Oui !  Parce que cela permet de cibler votre site et les attaques qu'il va subir.

On peut procéder de même pour n'importe quel fichier .xml, de n'importe quel composant installé et en apprendre beaucoup, trop, sur votre site.

Comment s'en prémunir ?

En fait, c'est excessivement simple : il faut créer un petit fichier texte qui se nommera .htaccess (le fichier n'a pas de nom mais uniquement l'extension .htaccess).  Ce fichier devra être créé dans le dossier /administrator de votre site et il contiendra ceci :

<Files ~ ".xml$"> 
order allow,deny 
deny from all 
satisfy all 
</Files>

 
Si vous avez déjà un fichier /administrator/.htaccess, éditez-le et ajoutez le bloc de lignes ci-dessus à la fin du fichier.
 
Fermez et sauvez.   Et c'est tout !
 
Éssayez à nouveau d'accéder à l'url qui pointait vers un fichier .xml : votre serveur refusera et vous enverra vers une page 404 : le pirate en herbe ... aura l'herbe coupée sous ses pieds.
 
Bien évidemment, cette protection n'est qu'une parmi d'autres et ne pourra jamais être considérée comme totale et efficace.   Elle limite néanmoins la divulgation d'informations sensibles de votre site à tout un chacun.  Les petits addons des navigateurs qui permettent de déterminer la version de Joomla afficheront un joli "Joomla Version : Hidden" ce qui est le but recherché.
 
NB : Pensez à bien tester votre site afin de vous assurer qu'il continue à fonctionner comme souhaité.   En effet, si l'un ou l'autre composant tiers aurait besoin d'accéder légitimement à un fichier .xml depuis une url (c'est excessivement rare!), votre composant pourrait ne plus fonctionner comme attendu.

 

 

vendredi, 24 mai 2013 23:15

Optimisation de l'affichage du site

Écrit par
Évaluer cet élément
(2 Votes)

Après quelques lectures et test d'optimisation, les performances du blog de AllEvents sont passées de D / C à un A / B et, peut-être est-ce simplement un effet placebo mais il me semble, très concrètement, voir la différence au chargement des pages du site.

463-gtmetrix-600x255

Afin que ma courte expérience puisse être utile, sans prétention aucune, je vous livre ici les quelques adaptations que j'ai faite :

1. Installation de JCH Optimize 

http://extensions.joomla.org/extensions/core-enhancements/performance/site-performance/12088

Il s'agit d'un plugin de type système pour Joomla et qui, le plus simplement du monde, permet d'améliorer "comme c'est pas possible" les performances de votre site.   Tout se passe depuis l'écran de paramétrage du plugin, il suffit d'activer telle ou telle option.   Impossible de vous dire exactement ce qui fonctionnera sur votre site car il faut tester les paramètres pour être sûr que votre site fonctionne comme souhaité dès qu'un paramètre a été appliqué.

Pour info, sur ce site, j'ai désactivé "Combine Javascript Files" et "Minify Javascript" car cela causait des conflits et empêchait des scripts de s'exécuter.   Toutes les autres options sont sur Yes comme p.e. "Combine CSS Files," Replace @import", "GZip Js and CSS", "Minify CSS", etc.  

J'ai opté pour l'envoi des scripts javascript en toute fin de page; comme recommandé par plusieurs sites d'optimisation tel que GTmetrix.

Dans les paramètres avancés, j'ai également activé l'utilisation du fichier .htaccess ainsi qu'activer la génération des sprites (si vous ne savez pas ce qu'est un sprite).

2. Installation de JotCache

http://extensions.joomla.org/extensions/core-enhancements/performance/cache/13155

JotCache est un composant et un plugin système qui viennent remplacer le cache de Joomla et qui permet d'être bien plus précis dans la configuration du cache ainsi que définir comment le cache doit se comporter selon p.ex. le composant à l'oeuvre.   

Une fois la page dans le cache du serveur, son affichage est presque instantané.

2. PNGGauntlet

http://pnggauntlet.com/

Grâce à des outils comme GTmetrix, j'ai pû identifier les images qui étaient plus lourdes et affichées sur ma page d'accueil et même, les petites images qui gagneraient à être compressées.

C'est là qu'intervient PNGGauntlet qui est un logiciel de compression sans perte de qualité.   J'ai donc téléchargé les images utilisées sur ma page d'accueil comme celles de mon template, celles de l'un ou l'autre modules et, bien sûr, les images utilisées dans les articles du blog et je les ai compressées.   Certaines images, pourtant déjà au format png ont pû être compressées à 50%.  Sans toucher ni à la qualité ni à la taille de l'image.

3. .htaccess

Via son .htaccess, il est possible de définir des durées de vies pour tel ou tel types de fichiers.  Ainsi, les fichiers images pourraient avoir une durée de vie de plusieurs semaines, les fichiers .css d'un mois, ... et les fichiers .html d'un jour.  Tout est paramétrable.   Il existe un excellent article sur le site de Joomla.org : .htaccess File That FREAKIN Works!

4. Joomla

Last but not least, n'oubliez évidemment pas de configurer le cache de votre site Joomla (pas de cache=pas d'optimisation) ainsi que la compression GZip qui est accessible depuis l'onget Serveur de l'écran de configuration générale du site.

Selon SiteGround.com, le meilleur cache est obtenu en sélectionnant le cache conservateur. 

JotCache (voir 2.) est utilisé en remplacement du cache de Joomla.

 

 

Remerciements : je tiens à remercier Simon Grangé pour son article "Outils et astuces pour vérifier la vitesse d'un site Joomla! et améliorer les performances" ainsi que son astuce consistant à utiliser le plugin JCH Optimize.

 

 

 

Suite à 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 ?

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

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

 


 

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

mardi, 26 mars 2013 08:24

Joomla!Day 2013... c'est fini ;-{

Écrit par
Évaluer cet élément
(2 Votes)

Le Joomla!Day 2013 – Toulouse est terminé ; c’est décidément toujours trop court.

La journée du dimanche confirme l’excellente organisation de l’évènement et l’esprit de famille ; à peine arrivé sur place et c’est reparti pour de nombreuses discussion et l’occasion de s’accorder du temps pour échanger avec ceux avec qui on a trop peu vu la veille.

La première conférence à laquelle j’ai participé est celle de Thomas Papin : comment modifier l’affichage de Joomla sans faire de hack. Thomas explique entre autre les vues alternatives pour les modules. Dans la deuxième partie de son exposé, Thomas donne des noms de composants qui sont majoritairement gratuits et sont utilisés sur des sites associatifs ; entre autre Community Builder, AcyMailing, Kunena forum et un certain composant de gestion d’évènements.

Ma seconde conférence est « Autour de CB » animée par Eric Lamy, VP de l’AFUJ. Eric parle des plugins de CBs dont p.ex. Facebook Connect et CBSubs. Le second nommé permet de gérer des abonnements (adhésion annuelle, cotisation, …) et Eric donne plusieurs trucs pour proposer des promotions (réduction de 30% p.ex. si inscription 3 mois avant terme de l’adhésion).

CrawlProtect, première conférence de l’après-midi, est une solution php non Joomla! permettant de sécuriser son site. Cette solution gratuite permet de bloquer l’accès à son site dès lors que la connexion est jugée illégitime (sur base d’IPs blacklistées, urls de type tentatives de hacking, …). CrawlProtect utilise le fichier .htaccess ainsi que la base de données pour bloquer d’autres attaques (sur base de mots clef dans l’url entre autre). Cette solution me semble très performante et mérite d’être largement testée.

Brian Teeman @ photo de Marc-Antoine ThevenetLa dernière conférence à laquelle j’ai pris part n’est pas, justement, une conférence mais une discussion. Il me faut avouer que, sur le coup, j’ai été manipulé. Le titre de la conférence était « Table ronde OSM » ; la table était rectangulaire et non ronde. Gros mensonge donc. L’idée de la table rectangulaire est de permettre un échange entre le public francophone et des personnes de Open Source Matters. Brian Teeman, David Hurley, Alice Little Grevet et Jean-Marie Simonet; la touche frenchie de la bande, étaient là pour expliquer la mission de OSM et pour échanger sur ce que le monde francophone pourrait faire pour promouvoir Joomla en francophonie. Eric Lamy a pû répondre à Brian qui questionnait sur la naissance du Joomla!Day Algérie qu’il avait aidé le groupe Algérien mais aussi d’autres tels que le Togo (j’espère que ma mémoire ne me fait pas défaut) à mettre sur pied leurs propres organisations et évènement.

Avant de plier bagages, les Joomleurs restant à Toulouse pour la nuit décident d’aller au restaurant et, de mon côté, nous nous retrouvons à onze dans le centre-ville. 

Au moment de quitter Toulouse, un regret, une fois encore, que tout ça soit déjà fini et qu’il faille attendre une année avant de revivre un tel moment d’ouverture et de rencontre.

Merci à l’AFUJ, merci aux organisateurs et merci à tous.

Évaluer cet élément
(2 Votes)

La copie des slides de la présentation de AllEvents 3.0 est disponible en téléchargement.  Cliquez sur le bouton ci-dessous pour accéder au téléchargement.


Merci à tous ceux qui ont assisté à la présentation et à l'accueil qu'ils ont réservé à AE3; je suis heureux de voir que le développement de AE continue à répondre à vos besoins.    Merci!

Page 1 sur 69