Projekt
Sprawdź wielkość liter i pomiń ścieżki, odrzuć dane logowania, literały IP, odstępy oraz porty spoza 1–65535.
Porównaj źródła HTTPS z nazwami DNS ASCII, alfabetycznymi końcówkami i portem domyślnym 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)Sprawdź wielkość liter i pomiń ścieżki, odrzuć dane logowania, literały IP, odstępy oraz porty spoza 1–65535.
Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
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 zapewnia twórcom aplikacji środowisko programowania z AI dla Windows do badania decyzji na granicach wejścia. Otwórz projekt i opisz, jakie dane mają być akceptowane, odrzucane lub uznawane za równoważne. Przed zmianą reguły poproś model o przeanalizowanie obecnej implementacji, zwłaszcza gdy otaczający kod polega na wąskiej interpretacji.
Jednym z praktycznych zleceń jest ograniczone porównywanie pochodzenia adresów HTTPS. Podaj przykłady z portami jawnymi i domyślnymi, nazwami hostów o mieszanej wielkości liter oraz wejściami spoza akceptowanego podzbioru. Zapytaj, jak obecny kod je obsługuje i jaki wynik powinien otrzymać kod wywołujący. Dzięki temu dyskusja dotyczy polityki aplikacji zamiast zakładanej uniwersalnej reguły URL.
Oceń propozycję pod kątem normalizacji i odrzucania danych. Akceptacja wcześniej odrzucanego kształtu może poszerzyć kontrakt, nawet jeśli porównanie wygląda czytelniej. Uruchom testy projektu i sprawdź miejsca wywołania polegające na zgodności, w tym reakcję na nieprawidłowe wejście. Udokumentuj akceptowany podzbiór wraz ze zmianą.
Orivelle łączy się z obsługiwanymi punktami końcowymi zgodnymi z OpenAI lub punktami Anthropic, korzystając z uwierzytelniania, gdy jest wymagane. Model AI po ablacji można wybrać, jeśli jest dostępny w Twoim punkcie końcowym. Model i serwer określają narzędzia, limity kontekstu i pozostałe ograniczenia; etykieta nie certyfikuje decyzji dotyczących bezpieczeństwa ani nie zastępuje przeglądu kodu, którego zamierzasz używać.
Parsowanie i akceptacja w aplikacji to osobne decyzje. Użyj parsera do uzyskania komponentów, a następnie sprawdź, jakie schematy i formy hostów dopuszcza kod. Poproś model o wskazanie miejsc egzekwowania reguł, zamiast zakładać, że udane parsowanie oznacza akceptację.
Tak. Przepisanie kodu może naprawiać lub reinterpretować wartości odrzucane wcześniej. Dodaj odrzucane przypadki obok równoważnych akceptowanych i sprawdź reakcję kodu wywołującego. Jawnie zdecyduj, czy każda nowo akceptowana forma należy do kontraktu aplikacji.
Nie. Opisane porównanie dotyczy reguły pochodzenia w kodzie. Nie potwierdza wiarygodności usługi zdalnej ani bezpieczeństwa późniejszego żądania. Te osobne wymagania przejrzyj tam, gdzie aplikacja wykonuje żądanie.
Preferuj syntetyczne nazwy hostów i pomijaj dane uwierzytelniające, chyba że są niezbędne w przypadku odrzucenia. Sprawdź miejsca docelowe punktu końcowego i narzędzi. Osobno uruchomiony lokalny serwer modelu nie sprawia, że wszystkie podłączone narzędzia działają lokalnie, w tym narzędzia do analizy URL.
Orivelle · Zaktualizowano 2026-10-25