Raccourcisseur d'url, Bronco et Yomli

Raccourcir les url est marrant et parfois utile. Et parfois craignos, aussi, c'est pour ça que je préfère héberger mon service, fermé à tout autre que moi.

Pour ça, le petit script php développé par Bronco puis amélioré par Yomli est parfait : simple, sans base de donnée, déployable rapidement et avec les fonctionnalités utiles :

Enfin, presque rapidement, parce que si ce machin n'est pas à la racine du site, ça marche moins bien.

Chez moi, cela se passe de cette façon :

  1. un fichier index.php à la racine du site, qui va appeler les trucs utiles de yomli-go (<?php include_once('./yomligo/index.php') ?>
  2. un dossier yomligo dans lequel y'a le bazar

Évidement ça ne marche pas “comme ça”. Il faut pister, dans le dossier yomligo, tout ce qui demande un chemin, et ajouter avant le nom du dossier.

Par exemple :

include 'data/config.php';

Va devenir :

include 'yomligo/data/config.php';

Et faut faire ça un peu partout. On peut aussi en profiter pour nettoyer le “index.php” et laisser que ce qu'on souhaite inclure…

Après ça, ça marche à peu prêt.

Le plus propre, évidement, serait de déclarer une variable pour le dossier où est yomligo et de pusher ensuite ça amont refaire ça pour que ça corresponde à la façon dont j'ai envie de l'utiliser.

Yakalfr : bidouiller pour que ça se comporte comme je veux

Yomli-go utilise trois pages : index, user et admin. La première est celle de base pour raccourcir le lien, la seconde sert à gérer ses propres liens (stockés dans le localstorage), la dernière gère les liens en tant qu'admin.

Je ne suis pas très convaincue par la gestion “user” de yomli, d'autant que laisser ça ouvert à tout vent est une mauvaise idée. Au passage, la gestion “fermée” est complètement buguée…

Il faudrait mieux avoir :

  • un bout de code à inclure “où on veut” pour afficher le formulaire de raccourcisseur de lien
  • un lien “admin” vers une page protégée (pour de vraie) pour
    • voir la liste des liens et effacer ceux qui ne nous plaisent pas
    • passer le raccourcisseur en mode open (tout le monde peut faire n'importe quoi), “montrer patte blanche” (faut répondre à un test de base pour limiter les bots) ou “VIP” (faut être identifié pour poster).
    • Voir la liste des ip bannies et potentiellement les débannir ; et pouvoir noter des ip comme “fiables” (pas de tests, seront toujours ok).

Pour les tests :

  • des questions, potentiellement représentées avec des image (accessibilité nulle), plusieurs réponses possibles à chacune
  • un mot de passe “générique” (seuls les amies savent ce que c'est… ou par brute force)

Dans un cas comme dans l'autre, il faut un mécanisme de mitigation de la brute force : après 6 essais, attendre une minute, puis ensuite 30 secondes entre chaque essai raté (durant 10 essais max) puis banni durant 1 jour.

La base de donnée des liens doit être protégée de l'accès par le reste du web MAIS pas chiffrée parce que osef : si tu met des liens secrets dans ce genre de truc, c'est pas malin.

CC Attribution-Noncommercial-Share Alike 4.0 International Driven by DokuWiki
pratique/informatique/shorturl.txt · Dernière modification : 30/11/2020 10:36 de 127.0.0.1