Kévin Subileau

Espace personnel

firefox-incognito-private

Firefox - Faire passer les requêtes DNS par le tunnel SSH

Mise à jour du 28/02/2015 : Je viens de m'apercevoir que les dernières versions de Firefox (>= 34 je crois) proposent désormais une case à cocher "DNS distant" dans l'écran de configuration du proxy. Cette case à cocher agit sur la même variable de configuration que l'astuce ci-dessous, et a donc le même effet. Plus la peine de bidouiller dans about:config ! Mais bon, je laisse quand même l'astuce si vous utilisez une ancienne version ou si vous aimez vous compliquer la vie :D

Vous pensiez avoir mis votre navigation Web bien à l'abri des regards indiscrets grâce à votre proxy SOCKS réalisé par exemple via un tunnel SSH ? Détrompez-vous ! En réalité, par défaut, seule une partie de vos communications Web sont protégées par cette méthode. L'essentiel des informations nécessaires pour connaitre les sites Web que vous avez visités passent toujours en clair.

C'est le cas notamment des requêtes DNS, qui ne passent pas par le proxy avec la configuration par défaut de Firefox. Le genre de détail qui tue... En effet, à chaque fois que vous visitez un site, un message indiquant son nom est envoyé en clair ! Il suffit d'intercepter ces messages pour avoir un historique assez détaillé de votre navigation.

Heureusement, il est plutôt simple d'y remédier. Sur Firefox, ouvrez une nouvelle fenêtre ou un nouvel onglet et tapez about:config dans la barre d’adresse, comme ci-dessous, puis validez en tapant sur la touche Entrée.

Firefox - Accès à about:config

Vous arrivez alors sur un message d’avertissement vous signalant qu’il peut être dangereux d’apporter des modifications.

Firefox - Avertissement about:config

Prenez note de cet avertissement, puis cliquez sur « Je ferai attention, promis ! ». Dans la nouvelle page qui s’affiche, recherchez la clé network.proxy.socks_remote_dns en utilisant le champ prévu à cet effet.

firefox-about-config-socks-remote-dns

Par défaut cette clé a pour valeur false (désactivé). Pour masquer vos requêtes DNS, faites passer la valeur à true (activé) en double-cliquant sur la ligne ou en cliquant dessus avec le bouton droit de la souris puis sur Inverser. Si la clé n'existe pas, vous pouvez la créer en faisant un clic droit sur une zone blanche de la fenêtre, puis en cliquant sur Nouvelle / Valeur Booléenne.

Vous pouvez ensuite fermer la fenêtre ou l'onglet, les modifications sont immédiatement prises en compte.

Attention, si vous utilisez simultanément Google Chrome, le même problème existe également et il faut lancer le navigateur en précisant le paramètre --proxy-server pour le corriger. Idem pour Internet Explorer, où il n'existe en revanche pas de solution à ma connaissance.

Vos requêtes DNS sont maintenant protégées, mais sachez toutefois que d'autres contenus peuvent continuer à être transmis en clair, notamment les contenus Flash comme les vidéos ou les jeux, et vous ne pourrez pas être sûr à 100% que vous êtes totalement intraçable. Si vous souhaitez vraiment vous assurer autant que possible de masquer toutes les communications de votre PC, alors il est préférable de se tourner vers d'autres solutions, comme le VPN ou le réseau Tor.

festival-of-colors

Color Thief PHP : extraire les couleurs dominantes d'une image

Color Thief PHP est une classe PHP qui vous permet d'extraire la couleur dominante ou une palette de couleurs à partir d'une image JPEG, GIF, ou PNG. Le projet est disponible sur GitHub, et sur Packagist. Vous pouvez également voir le code en fonctionnement sur cette page de démonstration.

La particularité de cette classe est qu'elle n'utilise pas une simple moyenne arithmétique pour déterminer la couleur dominante, contrairement à de nombreux scripts disponibles sur le web. En effet, cette méthode donne souvent des résultats plutôt aberrants, avec une couleur moche qui ne ressemble à rien de ce que l'on perçoit dans l'image. Ici, un algorithme avancé de quantification de couleurs est utilisé. Cet algorithme, nommé "Modified Mean Cut Quantizer", est comparable à celui utilisé par la compression JPEG. L'avantage est que les couleurs calculées sont le plus souvent visuellement très proches de celles présentes dans l'image d'origine, comme vous pouvez le voir sur l'exemple ci-dessous :

color-thief-example

Un exemple de palette de couleurs obtenue grâce à Color Thief PHP

L'utilisation de la classe est très simple, surtout si vous utilisez Composer, mais peut être assez gourmande en ressources en fonction de la taille de l'image et de la qualité demandée. Je vous conseille donc de conserver le résultat en base de données plutôt que d’exécuter le script à chaque chargement de page. Pour plus d'informations, je vous invite à vous reporter à la documentation sur GitHub.

Les applications de cette classe ne sont limitées que par votre imagination : moteur de recherche par couleur, adaptation des couleurs de l'interface graphique en fonction de l'image affichée... Alex P. Gates a même développé un script PHP capable de modifier la couleur d'une lampe en fonction des couleurs d'une image, en utilisant Color Thief PHP et une lampe Philips Hue.

Enfin, si vous avez besoin de cet outil coté client en Javascript, sachez qu'il s'agit en fait d'un portage d'un script javascript. Vous pouvez donc utiliser le script Color Thief original réalisé par Lokesh Dhakar.