OOrivelle
Środowisko programowania z AI

Ograniczone porównanie źródeł HTTPS

Porównaj źródła HTTPS z nazwami DNS ASCII, alfabetycznymi końcówkami i portem domyślnym 443.

● ● ●Orivelle●
Sposoby pracy · Ograniczone porównanie źródeł 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)
✳Ograniczone porównanie źródeł HTTPS
✓ ZmianySprawdź przed zastosowaniem ↗
Ilustracja środowiska
01

Projekt

Sprawdź wielkość liter i pomiń ścieżki, odrzuć dane logowania, literały IP, odstępy oraz porty spoza 1–65535.

02

Sprawdź przed zastosowaniem

Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.

03

Modele

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.

Sposoby pracy

Ograniczone porównanie źródeł HTTPS

Sposoby pracy ↗
Sposoby pracy
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)
Środowisko programowania z AI

Zachowaj jawne reguły akceptacji URL i ustalania pochodzenia

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ć.

Przed zmianą reguły pochodzenia

Czy ogólny parser URL powinien określać całą politykę?

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ę.

Czy normalizacja może przypadkiem rozszerzyć akceptowany zbiór wejść?

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.

Czy zgodność pochodzenia weryfikuje usługę zdalną?

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.

Czy przypadki diagnostyczne powinny zawierać produkcyjne URL lub dane uwierzytelniające?

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.

Pobierz dla Windows ↗

Orivelle · Zaktualizowano 2026-10-25