- Expédié
- 23 septembre 2026 à 11:36 UTC
- Auteur
- Kamo
- Commite
- a3d6885
POST/convert-vecteur et WS /ws/pipeline n'ont pas pris au tout '4820f44 upload upload size et la convenance de conversion, mais a laissé le trou réel ouvert en attendant une décision sur la manière d'authentifier un le navigateur webSocket brut, puisque ni un jeton de porteur ni l'en-tête X-OTK de kafoudre n'est option là (une option WebSocket ne peut pas définir des en-têtes personnalisés, et une clé à usage unique dans la chaîne de requête WS débarqueraient dans les journaux de Traefik/l'accès). Traefik routes /vec-ws/z directement vers ce service, by-passing la passerelle APIService de kamo-internal entièrement, afin que toute personne qui puisse atteindre cette nacelle - qui - signifie que n'importe qui sur Internet pourrait le faire sortir de CPU/mémoire gratuitement, ou l'utiliser comme un proxy anonyme de conversion d'image. Le correctif: les deux appelants sont le code du navigateur de même origine sur l'intérieur. envoie le cookie de session sur chaque demande à ce service, le même que pour le kamo-internal lui-même. services/session-auth.py vérifie ce cookie exactement comme le contrôle kamo-internal un côté serveur (son app/lib/ksemSessionShared.ts / sessionServer.ts / apiProxy.ts sont tous d'accord sur le forme): la valeur du cookie IS l'id de session, valable uniquement à 128 caractères hexagones, et la session est valide lorsque Redis a quoi que ce soit à "-" - cet id - en lecture seule, à partir de la réplique, avec la même 5-tente/2s réessair les propres voies de kamo-internal pour tolérer le retard de réplication. A Redis erreur compte comme "non trouvé" plutôt que d'agiter l'appelant. - POST/convert-vecteur: 401 avant même le téléchargement. - WS /ws/pipeline: accept() se produit toujours (la véhiffe ne délivre qu'un véritable code WS fermé - ici 1008, violation de la politique - une fois que la poignée de main a commencé; la fermeture avant d'accepter l'effondrement à la nu HTTP 403 avec le code rejeté), puis se ferme immédiatement, avant toute trame. - k8s/configmap.yaml obtient la même chose et kamo-internal est propre Configmap transporte - Redis de cet cluster n'a pas de LCA, donc PASSWORD est vide partout il est consommé, pas un droit littéral pour un secret qui n'existe pas. - Ne jamais enregistrer la valeur du cookie ou l'id de session (la clé Redis est l'id, juste préfixée). La santé reste ouverte, délibérément, rien ne change ici. Essais: test-session-auth.py. Défilé par les deux sites d'appel de fond de base.py de retour local: Les tests de rejet côté HTTP échouent (le convertisseur moqué est appelé au lieu de sarbouler) et le convertisseur ridiculisé Le test côté WebSocket raccroche droit (rien ne ferme jamais la connexion) - les deux confirment que le garde est charge-porteuse; restaurée après. Écart connu, hors de portée ici: kamo-internal's local-dev path (NEXT-PUBLIC-IMAGE-PIPELINE-URL / localhost:8000) appelle cette utilisation croisée du service, et ni logoVectorize.ts's fetch() ni useImagePipeline.ts's WebSocket envoie des identifiants entre les informations par défaut, donc local dev contre un Un service vectoriel local va maintenant 401/1008 sur les deux critères d'évaluation. La production n'est pas affectée (identifiant de l'origin).
