Notre service Liens (ou Links service en anglais) permet de raccourcir des URL longues en attribuant des noms raccourcis. Pour chaque lien créé, il fournit un lien d’administration permettant de supprimer le lien ou de compter les clics sur le lien raccourci. Il dispose également de fonctionnalités avancées de protection contre le spam.
L’utilisateur·ice se rend sur la page du service, renseigne son URL longue et éventuellement un nom de raccourci personnalisé, puis complète le captcha et clique sur « Créer ! ». Un lien d’administration lui est transmis.
Ce service est officiellement annoncé le 23 mai 2019 avec le service DoH. Il fonctionnait initialement avec le logiciel Lstu.
Suite à une recrudescence importante de liens de spam qui nous a poussés à interdire temporairement la création de nouveaux liens, nous avons développé rs-short en interne et avons remplacé Lstu par ce nouveau logiciel, qui consomme beaucoup moins de RAM et intègre un captcha pour lutter contre le spam.
Les besoins de modération ont rapidement évolué et nous ont poussé à réécrire rs-short à plusieurs reprises. En janvier 2021, avec la fermeture de Framalink, le service a commencé à devenir de plus en plus utilisé et nous demande encore un temps de modération important, qui pourrait remettre en question la pérennité du service.
Dans l’attente de déployer une CI/CD, nous utilisons une image Docker créée de toutes pièces qui nécessite de compiler le binaire de notre logiciel rs-short au préalable. Cette compilation doit s’effectuer avec l’outil cargo
dans le langage Rust, sur un hôte disposant de la même version de Debian que le conteneur (variable DEB_VERSION
).
Dans notre installation actuelle, notre Dockerfile copie le contenu du dossier private/
depuis notre serveur, vers /run_dir
.
Ce dossier private/
contient trois fichiers :
rs-short
;config.toml
contenant les identifiants et clés secrètes nécessaires au fonctionnement du logiciel (voir un fichier d’exemple) ;lists.toml
contenant des listes d’autorisation et de blocage pour protéger le service du spam (voir un fichier d’exemple).Notre version de rs-short est configurée pour fonctionner avec PostgreSQL. Il est fortement déconseillé d’utiliser SQLite pour ce logiciel, les requêtes vers la base de données étant très nombreuses. Le logiciel rs-short supporte également MySQL/MariaDB.
La plupart des tests de fonctionnement de rs-short sont effectués par le binaire lui-même au démarrage (vérification de la syntaxe des fichiers et de certaines variables). Le service peut ensuite être testé dans un navigateur.
Il est toutefois important de tester régulièrement la réputation du domaine ou sous-domaine utilisé pour le raccourcisseur de liens avec des sites comme urlvoid ou VirusTotal. Si des URLs spécifiques ou le domaine sont signalées comme malveillantes, il est nécessaire de contacter l’organisation qui tient le service de réputation pour supprimer le raccourcisseur de liens de cette liste.
Quelques statistiques d’utilisation du service Liens de La Contre-Voie.
Il s’agit de moyennes journalières mesurées pendant la 5e semaine (calendrier ISO) de chaque année listée.
Année | Requêtes | Utilisateur·ice·s uniques | Bande passante |
---|---|---|---|
2020 | 894 | 377 | 24 MB |
2021 | 5 917 | 1 633 | 296 MB |
2022 | 1 497 | 474 | 46 MB |
2023 | 3 737 | 1 086 | 91 MB |
Le tableau ci-dessous recense le nombre de liens créés sur toute l’année.
Année | Liens créés | Liens frauduleux | Pourcentage de liens frauduleux |
---|---|---|---|
2020* | 381 | 41 | 10,76 % |
2021 | 10 461 | 640 | 6,11 % |
2022 | 9 896 | 346 | 3,49 % |
* 2020 : Ces données concernent uniquement la période du 11 avril au 31 décembre 2020, après la migration du service Liens de Lstu vers rs-short.
La diminution progressive du pourcentage de liens frauduleux au fil des années est dûe à d’importants efforts consacrés à la modération du service, pour supprimer activement et rapidement les liens frauduleux, ainsi qu’une modernisation du logiciel rs-short pour le doter d’outils de modération plus puissants.
En production, le conteneur rs-short consomme environ 25 MB de RAM en date de février 2023. La base de données PostgreSQL utilisée par rs-short pèse 12 MB.
ATTENTION : Maintenir un raccourcisseur de liens est un calvaire qui vous prendra beaucoup de temps et pourra même engager régulièrement la responsabilité juridique de votre structure, car ce genre de service est particulièrement utilisé pour relayer des arnaques et du contenu illégal.
abuse@votrenomdedomaine
.
Retrouvez un témoignage complet sur la lutte contre le spam sur notre blog.
Si vous avez vraiment besoin de ce service, nous vous recommandons de le réserver à un cercle restreint de personnes (vos membres, votre famille, vos amis…) plutôt qu’en libre accès.
Si malgré tout vous souhaitez héberger un raccourcisseur d’URL en libre accès, nous vous suggérons de prendre connaissance de notre retour d’expérience ci-dessus ainsi que du guide d’entretien qui suit.
Ce service nécessite une maintenance journalière, ou a minima un contrôle plusieurs fois par semaine, afin de le protéger du spam.
En effet, nous ne pouvons pas nous permettre d’agir uniquement sur signalement de la part de la police ou d’entreprises victimes de phishing, compte tenu des risques juridiques et techniques que cela peut entraîner (coupure de notre serveur par notre hébergeur, engagement de notre responsabilité juridique…). Nous agissons donc en amont.
verbose_suspicious
) : docker logs -f rs-short
verbose_console
pour afficher TOUS les liens créés dans la console (sauf ceux listés dans la liste d’autorisation).Cette section porte sur l’entretien régulier du fichier lists.toml.
Nous utilisons la liste d’autorisation pour ajouter les domaines que l’on peut considérer comme « sûrs », ce qui limitera la quantité de liens à contrôler. Il convient de ne pas ajouter n’importe quel domaine dans cette liste.
La liste de blocage nous permet de bloquer préemptivement la création de liens frauduleux. Nous bloquons notamment certains domaines (et leurs sous-domaines) par défaut :
Nous bannissons également des URL individuelles lorsque cela nous semble pertinent.
À chaque lien de hameçonnage détecté lors du contrôle journalier, il est nécessaire de mettre à jour cette liste pour empêcher la recréation du lien : autrement, un lien désactivé un soir pourrait se retrouver reposté le lendemain matin ou dans la nuit, et être partagé plusieurs milliers de fois avant d’être bloqué à nouveau. Il convient toutefois de décider au cas par cas s’il faut ajouter l’URL exacte, le nom de domaine entier ou le domaine et ses sous-domaines.
Note : Gardez toujours en tête que vous ne pouvez pas toujours prévoir les usages de votre outil. Un usage qui vous semblerait inapproprié à première vue pourrait être légitime. Ne désactivez pas un lien sans avoir la certitude qu’il s’agit d’un lien qui ne respecte pas les conditions d’utilisation.
Il vous sera nécessaire de réaliser une veille permanente sur abuse@votrenomdedomaine
ainsi que votre adresse de contact afin de réagir promptement lorsqu’une demande de retrait de contenu vous est parvenue.
En cas de contenu à caractère terroriste, depuis la loi du 16 août 2022, les hébergeurs de contenu ne disposent plus que d’une heure après l’envoi de l’injonction pour procéder au retrait du contenu. Pour notre part : il nous arrive de dormir parfois (eh oui !), et comme nous ne souhaitons pas déléguer notre modération à un algorithme ni à Google, nous savons que si nous recevons une injonction à 3h du matin, nous ne pourrons pas forcément y répondre.
Le traitement de ces demandes dépend beaucoup de votre politique interne. Une politique de traitement de ces demandes de retrait est disponible sur le wiki du collectif CHATONS.
Voici quelques-unes de nos directives sur le sujet :
Toute modification du fichier lists.toml
nécessite une reconstruction de l’image et un redémarrage du conteneur, opération qui prend moins d’une seconde et peut donc s’effectuer à chaud. Une examination des logs est nécessaire juste après le redémarrage pour vérifier si rs-short a bien démarré (une erreur au démarrage peut survenir en cas de problème de syntaxe dans les fichiers de configuration).
La mise à jour de rs-short s’effectue simplement en répétant le processus d’installation avec la nouvelle version. Il convient de lire les notes de version pour anticiper d’éventuelles modifications de configuration à appliquer.
Il serait particulièrement pratique de mettre en place un outil qui compilerait rs-short et créerait une image Docker associée, de manière automatique, à chaque nouvelle version du logiciel.
Dans la perspective de ne plus utiliser le nom de domaine 42l.fr pour nos services (car il est associé à l’ancien nom de l’association), il est envisagé d’utiliser un autre nom de domaine à la place. Les liens précédemment créés devront être maintenus.
Plutôt que d’utiliser la console pour la supervision du service, il pourrait être intéressant de développer une interface de modération du service accessible dans le navigateur.
Un redesign graphique de l’application et une uniformisation avec le thème graphique de La Contre-Voie pourrait aider à rendre le logiciel plus accueillant.