Proyecto
Comprueba mayúsculas e ignora rutas, rechazando credenciales, IP literales, espacios y puertos fuera de 1–65535.
Compara orígenes HTTPS de nombres DNS ASCII con sufijos alfabéticos y puerto 443 por defecto.
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)Comprueba mayúsculas e ignora rutas, rechazando credenciales, IP literales, espacios y puertos fuera de 1–65535.
Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.
Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.
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 ofrece a los desarrolladores de aplicaciones un espacio de programación con IA para Windows donde examinar decisiones en los límites de entrada. Abre el proyecto y describe qué entradas deben aceptarse, rechazarse o considerarse equivalentes. Pide al modelo que inspeccione la implementación actual antes de cambiar una regla, especialmente cuando el código circundante depende de una interpretación restringida.
Una comparación restringida de orígenes HTTPS es una solicitud práctica. Aporta ejemplos con puertos explícitos y predeterminados, nombres de host con mayúsculas y minúsculas y entradas fuera del subconjunto admitido. Pregunta cómo los trata el código actual y qué resultado debe recibir el consumidor. Así el análisis queda vinculado a la política de tu aplicación, en lugar de a una supuesta regla universal de URL.
Revisa la propuesta tanto por su normalización como por su comportamiento de rechazo. Aceptar una forma antes rechazada puede ampliar el contrato aunque la comparación parezca más limpia. Ejecuta las pruebas del proyecto e inspecciona los puntos de llamada que dependen de una coincidencia, incluida la respuesta a entradas mal formadas. Mantén documentado el subconjunto admitido junto al cambio.
Orivelle se conecta a endpoints admitidos compatibles con OpenAI o de Anthropic, usando credenciales cuando sean necesarias. Puedes elegir un modelo de IA ablacionado si tu endpoint lo ofrece. El modelo y el servidor determinan las herramientas, los límites de contexto y las restricciones restantes; la etiqueta no certifica decisiones de seguridad ni sustituye la revisión del código que piensas utilizar.
El análisis y la aceptación por la aplicación son decisiones separadas. Usa el analizador para obtener los componentes y revisa después qué esquemas y formas de host permite tu código. Pide al modelo que identifique dónde se aplican esas reglas en lugar de asumir que un análisis correcto implica aceptación.
Sí. Una reescritura puede reparar o reinterpretar valores que el código anterior rechazaba. Incluye casos rechazados junto con otros aceptados equivalentes y comprueba la respuesta del consumidor. Decide explícitamente si cada forma nueva aceptada pertenece al contrato de la aplicación.
No. La comparación descrita aquí aborda la regla de origen de tu código. No demuestra la fiabilidad de un servicio remoto ni la seguridad de una solicitud posterior. Revisa esos requisitos separados donde tu aplicación realiza esa solicitud.
Prefiere nombres de host sintéticos y omite las credenciales salvo que sean esenciales para un caso de rechazo. Revisa los destinos del endpoint y de las herramientas. Un servidor local de modelos ejecutado por separado no convierte en locales todas las herramientas conectadas, incluidas las que inspeccionan URL.
Orivelle · Actualizado 2026-10-25