OOrivelle
Spațiu de programare cu AI

Compararea restrânsă a originilor HTTPS

Compară origini HTTPS cu nume DNS ASCII, sufixe alfabetice și port implicit 443.

● ● ●Orivelle●
Fluxuri de lucru · Compararea restrânsă a originilor HTTPS ×
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)
✳Compararea restrânsă a originilor HTTPS
✓ ModificăriVerifică înainte de aplicare ↗
Ilustrarea spațiului de lucru
01

Proiect

Testează majusculele și ignoră căile, respinge acreditări, IP-uri literale, spații și porturi în afara 1–65535.

02

Verifică înainte de aplicare

Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.

03

Modele

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.

Fluxuri de lucru

Compararea restrânsă a originilor HTTPS

Fluxuri de lucru ↗
Fluxuri de lucru
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)
Spațiu de programare cu AI

Păstrează explicite acceptarea URL-urilor și deciziile privind originile

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.

Înainte de a modifica o regulă privind originile

Ar trebui un analizor URL general să decidă întreaga politică?

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.

Poate normalizarea extinde accidental setul intrărilor acceptate?

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.

Validează potrivirea originii serviciul la distanță?

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.

Ar trebui cazurile de diagnostic să conțină URL-uri sau date de autentificare din producție?

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.

Descarcă pentru Windows ↗

Orivelle · Actualizat 2026-10-25