OOrivelle
Рабочая среда с ИИ для кода

Ограниченное сравнение источников HTTPS

Orivelle — Windows-клиент для обсуждения с ИИ ограниченных правил HTTPS-origin. Откройте проект, подключите совместимую модель и проверьте сравнение хостов и портов до принятия предложенной правки.

● ● ●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

Подключение

Базовый URL, учётные данные и доступный сервер.

Сценарии

Ограниченное сравнение источников 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 и решения об origin

Orivelle предоставляет разработчикам приложений среду программирования с ИИ для Windows для изучения решений на входных границах. Откройте проект и опишите, какие входы нужно принимать, отклонять или считать эквивалентными. До изменения правила попросите модель изучить текущую реализацию, особенно когда окружающий код опирается на узкую интерпретацию.

Один практический запрос — ограниченное сравнение HTTPS-origin. Предоставьте примеры с явными портами и портами по умолчанию, именами хостов со смешанным регистром и входами вне допустимого подмножества. Спросите, как текущий код их обрабатывает и какой результат должен получать вызывающий код. Так обсуждение связано с политикой приложения, а не предполагаемым универсальным правилом URL.

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

Orivelle подключается к поддерживаемым конечным точкам, совместимым с OpenAI или Anthropic, с учётными данными при необходимости. Модель ИИ с абляцией ограничений можно выбрать, если она доступна у вашей конечной точки. Модель и сервер определяют инструменты, пределы контекста и оставшиеся ограничения; название не удостоверяет решения о безопасности и не заменяет проверку кода, который вы собираетесь использовать.

Перед изменением правила origin

Должен ли универсальный парсер URL определять всю политику?

Разбор и принятие приложением — отдельные решения. Используйте парсер для получения компонентов, затем проверяйте разрешённые схемы и формы хостов. Попросите модель найти места соблюдения правил, а не предполагать, что успешный разбор означает принятие.

Может ли нормализация случайно расширить набор допустимых входов?

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

Подтверждает ли совпадение origin надёжность удалённого сервиса?

Нет. Описанное сравнение касается правила origin в вашем коде. Оно не устанавливает надёжность удалённого сервиса или безопасность последующего запроса. Проверяйте эти отдельные требования там, где приложение делает запрос.

Должны ли диагностические примеры содержать рабочие URL или учётные данные?

Предпочитайте синтетические имена хостов и исключайте учётные данные, если они не нужны для случая отказа. Проверяйте адресатов конечной точки и инструментов. Отдельно работающий локальный сервер модели не делает все подключённые инструменты локальными, включая инструменты изучения URL.

Скачать для Windows ↗

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