Proiect
Testează majusculele și ignoră căile, respinge acreditări, IP-uri literale, spații și porturi în afara 1–65535.
Compară origini HTTPS cu nume DNS ASCII, sufixe alfabetice și port implicit 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)Testează majusculele și ignoră căile, respinge acreditări, IP-uri literale, spații și porturi în afara 1–65535.
Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
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 oferă dezvoltatorilor de aplicații un spațiu de programare cu IA pentru Windows în care pot examina deciziile luate la limitele intrărilor. Deschide proiectul și descrie ce intrări trebuie acceptate, respinse sau considerate echivalente. Cere modelului să inspecteze implementarea actuală înainte de a modifica o regulă, mai ales când codul din jur se bazează pe o interpretare restrânsă.
O comparație restrânsă a originilor HTTPS este o cerere practică. Furnizează exemple cu porturi explicite și implicite, nume de gazde cu litere mari și mici și intrări în afara subsetului acceptat. Întreabă cum le tratează codul actual și ce rezultat trebuie să primească apelantul. Astfel, discuția rămâne legată de politica aplicației, nu de o regulă URL universală presupusă.
Revizuiește propunerea atât pentru normalizare, cât și pentru respingere. Acceptarea unei forme respinse anterior poate extinde contractul, chiar dacă comparația pare mai curată. Rulează testele proiectului și inspectează locurile de apel care depind de o potrivire, inclusiv răspunsul după o intrare incorect formată. Păstrează documentat subsetul acceptat alături de modificare.
Orivelle se conectează la endpointuri acceptate compatibile cu OpenAI sau Anthropic, folosind date de autentificare când sunt necesare. Un model IA abliterat poate fi ales dacă este disponibil la endpoint. Modelul și serverul determină instrumentele, limitele de context și restricțiile rămase; eticheta nu certifică deciziile de securitate și nu înlocuiește revizuirea codului pe care intenționezi să îl folosești.
Analiza și acceptarea de către aplicație sunt decizii separate. Folosește analizorul pentru a obține componentele, apoi revizuiește schemele și formele gazdelor permise de cod. Cere modelului să identifice unde sunt impuse regulile, fără a presupune că analiza reușită înseamnă acceptare.
Da. O rescriere poate repara sau reinterpreta valori pe care codul vechi le respingea. Include cazuri respinse alături de cazuri acceptate echivalente și verifică răspunsul apelantului. Decide explicit dacă orice formă nou acceptată aparține contractului aplicației.
Nu. Comparația descrisă aici privește regula de origine a codului. Nu stabilește dacă un serviciu la distanță este de încredere sau dacă o cerere ulterioară este sigură. Revizuiește aceste cerințe separate acolo unde aplicația face cererea.
Preferă nume de gazde sintetice și omite datele de autentificare, dacă nu sunt esențiale pentru un caz de respingere. Verifică destinațiile endpointului și instrumentelor. Un server local de modele care rulează separat nu face ca toate instrumentele conectate să fie locale, inclusiv cele folosite la inspectarea URL-urilor.
Orivelle · Actualizat 2026-10-25