Skip to main content
JGJenks Guo

Docs / explanation

Sécurité et confidentialité

Ce que les interfaces publique et d’administration peuvent ou ne peuvent pas faire, comment le jeton d’administration et l’accès GitHub sont protégés, et ce qu’il advient des données des visiteurs.

Deux types d’accès

Public — tout le monde, sans identifiants. The REST API (/api/v1/*), the public MCP server (/mcp), the CLI's public commands and the static files sont en lecture seule. Ils n’exposent que le corpus publié, qui est public par conception. ask_jenks et le chat du site appellent un modèle de langage ; ils sont donc limités en débit par adresse IP pour empêcher les abus.

Admin — Jenks uniquement. /api/admin/*, /mcp/admin, jenks admin … et la console à /admin exigent le jeton d’administration personnel de Jenks dans un en-tête Authorization: Bearer. Avec celui-ci, un appelant peut valider, écrire et supprimer des fichiers de contenu et promouvoir dev vers main. C’est un véritable pouvoir ; le jeton est donc traité comme un mot de passe.

Le jeton d’administration

  • Il réside dans le trousseau macOS sous agent-env:JENKSGUO_ADMIN_TOKEN et n’est chargé dans un shell que lorsque nécessaire. Il n’est jamais écrit dans le contenu, les commits, les fichiers de configuration partagés ou les chats.
  • Le Worker le stocke en tant que secret chiffré et le compare en temps constant.
  • La console /admin ne stocke jamais le jeton. La connexion l’envoie une fois à /api/admin/login, qui définit un cookie de session HttpOnly, Secure, SameSite=Strict (12 heures, ou 14 jours avec "remember"). Les scripts de page ne peuvent pas lire ce cookie, et les écritures authentifiées par cookie doivent aussi envoyer un en-tête x-jenks-admin, qu’un formulaire intersite ne peut pas définir.
  • Faites-le pivoter s’il a pu fuiter : générez un nouveau jeton, enregistrez-le dans le trousseau, mettez à jour le secret du Worker, et l’ancien cesse immédiatement de fonctionner — ainsi que toutes les sessions de la console, car les sessions sont signées avec une clé dérivée du jeton.

Ce que l’API d’administration peut modifier

Les écritures sont limitées à une liste d’autorisation de chemins de contenu — les entrées du corpus, les lenses, les skills, les documents de base, le glossaire de traduction et cette documentation. Elle ne peut pas modifier le code, les workflows, les secrets ni quoi que ce soit en dehors de content/. Chaque écriture est d’abord validée par rapport au schéma de contenu.

Accès GitHub

Les écritures d’administration deviennent des commits via l’API GitHub à l’aide d’un jeton d’accès personnel à granularité fine, limité à l’unique dépôt, avec uniquement les permissions nécessaires à la publication. Il est stocké comme secret chiffré du Worker. Comme chaque changement est un commit :

  • l’historique git est le journal d’audit — qui a modifié quoi, quand et pourquoi (le message de commit),
  • l’annulation est toujours possible — toute version antérieure de n’importe quel fichier peut être restaurée.

Les changements risqués peuvent être préparés sur la branche dev et vérifiés sur https://dev.jenksguo.xyz avant d’atteindre le site en production.

Confidentialité des visiteurs

  • Aucun traqueur publicitaire et aucun cookie marketing.
  • La transcription du chat est conservée uniquement dans le navigateur du visiteur (sessionStorage) et effacée à la fermeture de l’onglet. Le site ne stocke pas les transcriptions de chat.
  • Les messages du chat sont envoyés via le Cloudflare Worker vers OpenRouter, qui les achemine vers un modèle de langage tiers. Les visiteurs sont invités à ne pas partager d’informations personnelles sensibles.
  • La saisie vocale utilise la reconnaissance vocale intégrée du navigateur lorsqu’elle est disponible ; sinon, l’audio est envoyé à OpenRouter pour transcription. Les réponses orales utilisent la synthèse vocale de l’appareil.
  • Cloudflare conserve des journaux de requêtes standard pour la sécurité et la limitation de débit.

Confidentialité du contenu

Tout ce qui se trouve sous content/ est public. Les CV de Jenks contenaient des numéros de téléphone, une adresse personnelle et des contacts de référents ; aucun de ces éléments ne figure dans le corpus et ils ne doivent jamais être ajoutés. Les informations concernant d’autres personnes sont limitées à ce qui est nécessaire pour décrire les rôles de Jenks.

Signaler un problème

Envoyez un e-mail à jenksguo@gmail.com avec les détails. Merci de ne pas tester l’interface d’administration sans autorisation.

.mdCette page est traduite avec l’aide de l’IA ; les titres officiels restent en anglais.