OOrivelle
Робоче середовище з ШІ для коду

Обмежене порівняння джерел HTTPS

Порівняйте джерела HTTPS з іменами DNS в ASCII, буквовими закінченнями та типовим портом 443.

● ● ●Orivelle●
Сценарії · Обмежене порівняння джерел 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)
✳Обмежене порівняння джерел HTTPS
✓ ЗміниПеревірте перед застосуванням ↗
Ілюстрація робочого середовища
01

Проєкт

Перевірте регістр та ігноруйте шляхи, відхиляйте облікові дані, IP-адреси, пробіли й порти поза 1–65535.

02

Перевірте перед застосуванням

Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.

03

Моделі

Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.

Сценарії

Обмежене порівняння джерел 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)
Робоче середовище з ШІ для коду

Робіть прийняття URL і визначення походження явними

Orivelle надає розробникам застосунків робоче середовище програмування з ШІ у Windows для дослідження рішень на межах вхідних даних. Відкрийте проєкт і опишіть, які входи слід приймати, відхиляти або вважати еквівалентними. Попросіть модель перевірити поточну реалізацію перед зміною правила, особливо коли навколишній код покладається на вузьке тлумачення.

Порівняння походження HTTPS в обмеженій підмножині — один із практичних запитів. Надайте приклади з явними й типовими портами, іменами хостів у змішаному регістрі та входами поза допустимою підмножиною. Запитайте, як поточний код їх обробляє та який результат має отримати код виклику. Це прив’язує обговорення до політики застосунку, а не до припущеного універсального правила URL.

Перевірте пропозицію щодо нормалізації та відхилення. Прийняття раніше відхиленої форми може розширити контракт, навіть коли порівняння виглядає чистішим. Запустіть тести проєкту й перевірте місця виклику, що покладаються на збіг, включно з реакцією після некоректного входу. Зберігайте документацію допустимої підмножини поряд зі зміною.

Orivelle підключається до підтримуваних сумісних з OpenAI або Anthropic кінцевих точок, використовуючи облікові дані за потреби. Аблітеровану модель ШІ можна вибрати, якщо вона доступна у вашій кінцевій точці. Модель і сервер визначають інструменти, межі контексту й решту обмежень; ця назва не засвідчує безпечності рішень і не замінює перевірки коду, який ви плануєте використовувати.

Перед зміною правила походження

Чи має загальний парсер URL визначати всю політику?

Розбір і прийняття застосунком — окремі рішення. Використайте парсер для отримання компонентів, а потім перевірте, які схеми й форми хостів дозволяє код. Попросіть модель визначити, де ці правила забезпечуються, замість припускати, що успішний розбір означає прийняття.

Чи може нормалізація випадково розширити множину допустимих входів?

Так. Переписування може виправити або переосмислити значення, які старий код відхиляв. Додайте відхилені приклади поряд з еквівалентними допустимими й перевірте реакцію коду виклику. Явно вирішіть, чи належить кожна нова прийнята форма до контракту застосунку.

Чи підтверджує збіг походження надійність віддаленого сервісу?

Ні. Описане порівняння стосується правила походження у вашому коді. Воно не встановлює надійності віддаленого сервісу або безпечності подальшого запиту. Перевіряйте ці окремі вимоги там, де застосунок робить запит.

Чи мають діагностичні приклади містити виробничі URL або облікові дані?

Віддавайте перевагу синтетичним іменам хостів і вилучайте облікові дані, якщо вони не потрібні для випадку відхилення. Перевірте місця призначення кінцевої точки й інструментів. Окремо запущений локальний сервер моделі не робить усі підключені інструменти локальними, зокрема й інструменти огляду URL.

Завантажити для Windows ↗

Orivelle · Оновлено 2026-10-25