Projeto
Teste maiúsculas e ignore caminhos, rejeitando credenciais, IPs literais, espaços e portas fora de 1–65535.
Compare origens HTTPS de nomes DNS ASCII com sufixos alfabéticos e porta padrão 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)Teste maiúsculas e ignore caminhos, rejeitando credenciais, IPs literais, espaços e portas fora de 1–65535.
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
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)O Orivelle oferece a desenvolvedores de aplicações um ambiente de programação com IA para Windows para examinar decisões nos limites de entrada. Abra o projeto e descreva quais entradas devem ser aceitas, rejeitadas ou consideradas equivalentes. Peça ao modelo que examine a implementação atual antes de alterar uma regra, principalmente quando o código ao redor depender de uma interpretação restrita.
Uma comparação restrita de origens HTTPS é uma solicitação prática. Forneça exemplos com portas explícitas e padrão, nomes de host com maiúsculas e minúsculas e entradas fora do subconjunto aceito. Pergunte como o código atual os trata e qual resultado o chamador deve receber. Isso mantém a discussão vinculada à política da aplicação, em vez de uma regra de URL presumidamente universal.
Revise a proposta tanto na normalização quanto no comportamento de rejeição. Aceitar um formato antes rejeitado pode ampliar o contrato mesmo quando a comparação parece mais limpa. Execute os testes do projeto e examine os pontos de chamada que dependem de uma correspondência, incluindo a resposta após uma entrada malformada. Mantenha o subconjunto aceito documentado junto da alteração.
O Orivelle se conecta a endpoints compatíveis com OpenAI ou endpoints Anthropic suportados, usando credenciais quando exigidas. Um modelo de IA abliterado pode ser escolhido se estiver disponível no endpoint. O modelo e o servidor determinam ferramentas, limites de contexto e restrições restantes; o rótulo não certifica decisões de segurança nem substitui a revisão do código que você pretende usar.
Análise e aceitação pela aplicação são decisões separadas. Use o analisador para obter componentes; depois, revise quais esquemas e formatos de host o código permite. Peça ao modelo que identifique onde essas regras são aplicadas, em vez de presumir que uma análise bem-sucedida significa aceitação.
Sim. Uma reescrita pode corrigir ou reinterpretar valores que o código antigo rejeitava. Inclua casos rejeitados junto dos equivalentes aceitos e confira a resposta do chamador. Decida explicitamente se cada novo formato aceito pertence ao contrato da aplicação.
Não. A comparação descrita aqui trata da regra de origem do seu código. Ela não estabelece a confiabilidade de um serviço remoto nem a segurança de uma solicitação posterior. Revise esses requisitos separados no ponto em que a aplicação faz essa solicitação.
Prefira nomes de host sintéticos e omita credenciais, a menos que sejam essenciais a um caso de rejeição. Revise os destinos do endpoint e das ferramentas. Um servidor de modelos local em execução separada não torna locais todas as ferramentas conectadas, inclusive as usadas para examinar URLs.
Orivelle · Atualizado 2026-10-25