Projet
Vérifie la casse et ignore les chemins, en refusant identifiants, IP littérales, espaces et ports hors de 1–65535.
Compare des origines HTTPS à noms DNS ASCII et suffixes alphabétiques avec le port 443 par défaut.
import re
from urllib.parse import urlsplit
def https_origin(url):
if type(url) is not str or any(not 33 <= ord(c) <= 126 for c in url):
raise ValueError("origin.text")
p = urlsplit(url)
if p.scheme.lower() != "https" or p.username is not None or p.password is not None:
raise ValueError("origin.scheme")
host = p.hostname or ""
labels = host.lower().split(".")
if len(labels) < 2 or not re.fullmatch(r"[a-z]{2,63}", labels[-1]):
raise ValueError("origin.dns")
if any(not re.fullmatch(r"[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?", x) for x in labels):
raise ValueError("origin.label")
if len(host) > 253 or p.netloc.endswith(":") or "\\" in url:
raise ValueError("origin.authority")
port = p.port if p.port is not None else 443
if not 1 <= port <= 65535:
raise ValueError("origin.port")
return ("https", host.lower(), port)
def same_origin(a, b):
return https_origin(a) == https_origin(b)Vérifie la casse et ignore les chemins, en refusant identifiants, IP littérales, espaces et ports hors de 1–65535.
Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
import re
from urllib.parse import urlsplit
def https_origin(url):
if type(url) is not str or any(not 33 <= ord(c) <= 126 for c in url):
raise ValueError("origin.text")
p = urlsplit(url)
if p.scheme.lower() != "https" or p.username is not None or p.password is not None:
raise ValueError("origin.scheme")
host = p.hostname or ""
labels = host.lower().split(".")
if len(labels) < 2 or not re.fullmatch(r"[a-z]{2,63}", labels[-1]):
raise ValueError("origin.dns")
if any(not re.fullmatch(r"[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?", x) for x in labels):
raise ValueError("origin.label")
if len(host) > 253 or p.netloc.endswith(":") or "\\" in url:
raise ValueError("origin.authority")
port = p.port if p.port is not None else 443
if not 1 <= port <= 65535:
raise ValueError("origin.port")
return ("https", host.lower(), port)
def same_origin(a, b):
return https_origin(a) == https_origin(b)Orivelle offre aux développeurs un espace de programmation avec IA sous Windows pour examiner les décisions aux frontières d’entrée. Ouvrez le projet et décrivez quelles entrées accepter, rejeter ou considérer équivalentes. Demandez au modèle d’examiner l’implémentation actuelle avant de changer une règle, surtout si le code environnant dépend d’une interprétation restreinte.
Une comparaison restreinte d’origines HTTPS constitue une demande pratique. Fournissez des exemples avec ports explicites et par défaut, noms d’hôte mêlant majuscules et minuscules et entrées hors du sous-ensemble accepté. Demandez comment le code actuel les traite et quel résultat l’appelant doit recevoir. La discussion reste ainsi liée à votre politique applicative plutôt qu’à une règle universelle supposée des URL.
Examinez la normalisation et les rejets dans la proposition. Accepter une forme auparavant rejetée peut élargir le contrat même si la comparaison paraît plus claire. Exécutez les tests du projet et examinez les sites d’appel qui dépendent d’une correspondance, y compris la réponse à une entrée mal formée. Documentez le sous-ensemble accepté avec la modification.
Orivelle se connecte aux points de terminaison compatibles OpenAI ou Anthropic pris en charge, avec les identifiants requis. Un modèle d’IA ablité peut être choisi si votre point de terminaison le propose. Le modèle et le serveur déterminent les outils, les limites de contexte et les restrictions restantes ; cette appellation ne certifie pas les décisions de sécurité et ne remplace pas la revue du code à utiliser.
L’analyse et l’acceptation applicative sont des décisions distinctes. Utilisez l’analyseur pour obtenir les composants, puis examinez quels schémas et formes d’hôte votre code autorise. Demandez au modèle d’identifier où ces règles sont appliquées au lieu de supposer qu’une analyse réussie implique l’acceptation.
Oui. Une réécriture peut réparer ou réinterpréter des valeurs rejetées par l’ancien code. Incluez des tests rejetés avec ceux acceptés comme équivalents, et vérifiez la réponse de l’appelant. Décidez explicitement si chaque nouvelle forme acceptée relève du contrat applicatif.
Non. La comparaison décrite concerne la règle d’origine de votre code. Elle n’établit ni la fiabilité d’un service distant ni la sûreté d’une requête ultérieure. Examinez ces exigences distinctes là où votre application effectue cette requête.
Préférez des noms d’hôte synthétiques et omettez les identifiants sauf s’ils sont indispensables à un cas de rejet. Examinez les destinations du point de terminaison et des outils. Un serveur local de modèle fonctionnant séparément ne rend pas locaux tous les outils connectés, y compris ceux servant à examiner les URL.
Orivelle · Mis à jour 2026-10-25