Project
Test hoofdletters en negeer paden, weiger inloggegevens, IP-literals, witruimte en poorten buiten 1–65535.
Vergelijk HTTPS-origins met ASCII-DNS-namen, alfabetische achtervoegsels en standaardpoort 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)Test hoofdletters en negeer paden, weiger inloggegevens, IP-literals, witruimte en poorten buiten 1–65535.
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
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 biedt toepassingsontwikkelaars een Windows-programmeerwerkruimte met AI om beslissingen bij invoergrenzen te onderzoeken. Open het project en beschrijf welke invoer moet worden geaccepteerd, afgewezen of als gelijkwaardig beschouwd. Laat het model de huidige implementatie inspecteren voordat een regel verandert, vooral als omliggende code op een beperkte interpretatie vertrouwt.
Een beperkte vergelijking van HTTPS-origins is een praktisch verzoek. Geef voorbeelden met expliciete en standaardpoorten, hostnamen met gemengde hoofdletters en invoer buiten de toegestane deelverzameling. Vraag hoe de huidige code die afhandelt en welk resultaat de aanroepende code moet ontvangen. Zo blijft het gesprek verbonden met uw toepassingsbeleid in plaats van een veronderstelde universele URL-regel.
Beoordeel het voorstel op zowel normalisatie- als afwijzingsgedrag. Een eerder afgewezen vorm accepteren kan het contract verruimen, ook wanneer de vergelijking netter lijkt. Voer uw projecttests uit en inspecteer de aanroeppunten die op een overeenkomst vertrouwen, inclusief de reactie op onjuist gevormde invoer. Houd de toegestane deelverzameling naast de wijziging gedocumenteerd.
Orivelle maakt verbinding met ondersteunde OpenAI-compatibele of Anthropic-eindpunten, met inloggegevens waar nodig. Een abliterated AI-model kan worden gekozen als uw eindpunt het aanbiedt. Het model en de server bepalen hulpmiddelen, contextlimieten en resterende beperkingen; het label certificeert geen beveiligingsbeslissingen en vervangt geen beoordeling van de code die u wilt gebruiken.
Parsen en acceptatie door de toepassing zijn afzonderlijke beslissingen. Gebruik de parser om onderdelen te verkrijgen en beoordeel vervolgens welke schema's en hostvormen uw code toestaat. Laat het model aanwijzen waar die regels worden afgedwongen, in plaats van aan te nemen dat geslaagd parsen acceptatie betekent.
Ja. Een herschrijving kan waarden herstellen of herinterpreteren die de oude code afwees. Neem afgewezen testgevallen op naast gelijkwaardige geaccepteerde gevallen en controleer de reactie van de aanroepende code. Beslis expliciet of elke nieuw geaccepteerde vorm in het toepassingscontract hoort.
Nee. De hier beschreven vergelijking behandelt de originregel van uw code. Zij stelt niet de betrouwbaarheid van een externe dienst of de veiligheid van een volgend verzoek vast. Beoordeel die afzonderlijke vereisten waar uw toepassing dat verzoek doet.
Gebruik bij voorkeur synthetische hostnamen en laat inloggegevens weg, tenzij die essentieel zijn voor een afwijzingsgeval. Beoordeel de bestemmingen van eindpunten en hulpmiddelen. Een afzonderlijk draaiende lokale modelserver maakt niet elk verbonden hulpmiddel lokaal, ook niet hulpmiddelen voor URL-inspectie.
Orivelle · Bijgewerkt 2026-10-25