Progetto
Verifica le maiuscole e ignora i percorsi, rifiutando credenziali, IP letterali, spazi e porte fuori da 1–65535.
Confronta origini HTTPS con nomi DNS ASCII, suffissi alfabetici e porta predefinita 443.
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)Verifica le maiuscole e ignora i percorsi, rifiutando credenziali, IP letterali, spazi e porte fuori da 1–65535.
Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.
Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente.
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 agli sviluppatori di applicazioni uno spazio di lavoro Windows con IA per esaminare decisioni prese ai confini degli input. Apri il progetto e descrivi quali input accettare, rifiutare o considerare equivalenti. Chiedi al modello di esaminare l'implementazione attuale prima di cambiare una regola, soprattutto quando il codice circostante dipende da un'interpretazione ristretta.
Un confronto limitato delle origini HTTPS è una richiesta pratica. Fornisci esempi con porte esplicite e predefinite, nomi host con maiuscole e minuscole e input fuori dal sottoinsieme accettato. Chiedi come li gestisce il codice attuale e quale risultato debba ricevere il chiamante. Così la discussione resta legata alle regole dell'applicazione anziché a una presunta regola universale degli URL.
Rivedi la proposta sia per la normalizzazione sia per il rifiuto. Accettare una forma prima rifiutata può ampliare il contratto anche quando il confronto sembra più pulito. Esegui i test del progetto ed esamina i punti di chiamata che dipendono da una corrispondenza, inclusa la risposta dopo un input malformato. Mantieni documentato il sottoinsieme accettato insieme alla modifica.
Orivelle si collega a endpoint supportati compatibili con OpenAI o Anthropic, usando credenziali ove richieste. Puoi scegliere un modello IA abliterato se disponibile dal tuo endpoint. Modello e server determinano strumenti, limiti di contesto e restrizioni residue; l'etichetta non certifica decisioni di sicurezza né sostituisce la revisione del codice da usare.
Analisi e accettazione applicativa sono decisioni separate. Usa il parser per ottenere componenti, poi rivedi quali schemi e forme host consente il codice. Chiedi al modello di identificare dove sono applicate queste regole anziché presumere che un'analisi riuscita significhi accettazione.
Sì. Una riscrittura può correggere o reinterpretare valori che il vecchio codice rifiutava. Includi casi rifiutati accanto a quelli accettati equivalenti e verifica la risposta del chiamante. Decidi esplicitamente se ogni forma appena accettata appartiene al contratto applicativo.
No. Il confronto descritto riguarda la regola di origine del codice. Non stabilisce l'affidabilità di un servizio remoto o la sicurezza di una richiesta successiva. Rivedi questi requisiti separati dove l'applicazione effettua la richiesta.
Preferisci nomi host sintetici e ometti credenziali salvo che siano essenziali per un caso di rifiuto. Rivedi le destinazioni di endpoint e strumenti. Un server di modelli locale in esecuzione separatamente non rende locale ogni strumento collegato, compresi quelli usati per esaminare URL.
Orivelle · Aggiornato 2026-10-25