Deux choses très différentes appelées "protection HTML par mot de passe"
Quand les gens recherchent "protéger un fichier HTML par mot de passe", ils tombent sur des tutoriels qui se divisent en deux catégories, et la distinction est très importante. La première catégorie est côté client : un extrait JavaScript embarqué dans le fichier qui affiche une invite demandant un mot de passe. La seconde est côté serveur : le serveur hébergeant le fichier refuse de le servir tant que le mot de passe ne correspond pas. Le côté client est de l'obfuscation. Le côté serveur est de la protection. Les tutoriels le précisent rarement.
Pourquoi la "protection" côté client est fragile
Une vérification de mot de passe JavaScript ressemble à ceci : quand la page se charge, un script demande un mot de passe, le compare à une valeur stockée et révèle le corps si ça correspond. Le problème est que tout ce que le navigateur sait, l'utilisateur le sait. Clic droit, afficher la source, et tout le HTML (incluant la vérification du mot de passe) est visible.
À utiliser quand :la protection est décorative, le public n'est pas adverse et le contenu n'est pas vraiment sensible.
Option 1, mot de passe côté serveur LiveSend
Sur LiveSend Pro, chaque document peut être protégé par un mot de passe que vous définissez dans le tableau de bord. Le mot de passe est haché avec bcrypt avant stockage. Quand un visiteur accède à l'URL, le serveur vérifie le cookie. S'il est absent ou invalide, le serveur retourne une invite de mot de passe et n'envoie jamais le HTML du document. Soumettre le bon mot de passe définit un cookie de 24 heures. C'est un blocage côté serveur, le modèle qui garde vraiment le contenu hors des mains non autorisées.
Combinez-le avec l'email gate (aussi sur LiveSend Pro) pour capturer l'email du visiteur au premier déverrouillage. Vous savez ainsi non seulement que le document a été ouvert, mais par qui.
Option 2, mot de passe Tiiny.host
Tiiny.host propose une protection par mot de passe sur ses plans payants. Le mécanisme est côté serveur, même modèle que LiveSend en principe. Tiiny.host n'inclut pas d'email gate par visiteur, donc vous obtenez des compteurs de vues agrégés mais ne pouvez pas associer une vue spécifique à un destinataire spécifique par défaut.
Option 3, mot de passe Static.app
Static.app supporte le blocage basic-auth pour les sites statiques sur les plans payants. Il est ciblé sur les développeurs et le tableau de bord suppose une familiarité avec les build artifacts et les outils CLI, mais la protection sous-jacente est un vrai blocage côté serveur.
Option 4, chiffrer le fichier avec un outil tiers
Des outils comme PageCrypt chiffrent le corps HTML avec une phrase secrète et l'embarquent dans une page wrapper. Le wrapper demande la phrase secrète au chargement et déchiffre le corps localement avec WebCrypto. Utile pour la distribution hors ligne (vous pouvez envoyer le .html chiffré comme pièce jointe email, et seul quelqu'un avec la phrase secrète peut l'ouvrir). Sur le web ouvert, il reste vulnérable à la force brute hors ligne si la phrase secrète est faible.
Quand les mots de passe ne sont pas le bon outil
Les mots de passe ajoutent de la friction mais ne sont pas liés à une identité. Si le destinataire transmet l'URL et le mot de passe ensemble, le visiteur suivant entre. Pour les transactions avec NDA, salles de données M&A ou tout ce où l'accès lié à l'identité importe, vous voulez une virtual data room (DocSend Advanced, Firmex, Intralinks) plutôt qu'un mot de passe sur une page HTML statique.
Choisir la bonne option
Travail client vraiment confidentiel, vous voulez un blocage côté serveur plus un tracking par visiteur : LiveSend. Juste besoin d'un mot de passe sur un site statique : Tiiny.host. Chiffrement pour la distribution hors ligne : PageCrypt ou similaire. Accès lié à l'identité pour des transactions réglementées : une VDR appropriée, pas un mot de passe.