Proyek
Uji huruf besar dan abaikan jalur, tolak kredensial, IP literal, spasi dan porta di luar 1–65535.
Bandingkan asal HTTPS untuk nama DNS ASCII bersufiks alfabet dengan porta baku 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)Uji huruf besar dan abaikan jalur, tolak kredensial, IP literal, spasi dan porta di luar 1–65535.
Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.
Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah.
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 menyediakan ruang kerja pemrograman AI Windows bagi pengembang aplikasi untuk memeriksa keputusan pada batas masukan. Buka proyek dan jelaskan masukan yang harus diterima, ditolak, atau dianggap setara. Minta model memeriksa implementasi saat ini sebelum mengubah aturan, terutama ketika kode terkait mengandalkan interpretasi sempit.
Perbandingan origin HTTPS terbatas adalah salah satu permintaan praktis. Berikan contoh port eksplisit dan bawaan, nama host dengan campuran huruf besar-kecil, serta masukan di luar subset yang diterima. Tanyakan cara kode saat ini menanganinya dan hasil yang harus diterima pemanggil. Ini menjaga diskusi terkait kebijakan aplikasi, bukan aturan URL universal yang diasumsikan.
Tinjau usulan untuk normalisasi maupun perilaku penolakan. Menerima bentuk yang sebelumnya ditolak dapat memperluas kontrak meski perbandingannya tampak lebih rapi. Jalankan pengujian proyek dan periksa lokasi pemanggilan yang mengandalkan kecocokan, termasuk respons setelah masukan berformat salah. Dokumentasikan subset yang diterima bersama perubahan.
Orivelle terhubung ke endpoint yang kompatibel dengan OpenAI atau endpoint Anthropic yang didukung, memakai kredensial bila diperlukan. Model AI abliterasi dapat dipilih jika tersedia dari endpoint Anda. Model dan server menentukan alat, batas konteks, dan batasan yang tersisa; label itu tidak menyertifikasi keputusan keamanan atau menggantikan peninjauan kode yang hendak digunakan.
Penguraian dan penerimaan aplikasi merupakan keputusan terpisah. Gunakan parser untuk memperoleh komponen, lalu tinjau skema dan bentuk host yang diizinkan kode. Minta model mengidentifikasi tempat aturan itu ditegakkan, bukan menganggap penguraian berhasil berarti diterima.
Ya. Penulisan ulang dapat memperbaiki atau menafsirkan ulang nilai yang ditolak kode lama. Sertakan kasus uji ditolak bersama kasus diterima yang setara dan periksa respons pemanggil. Putuskan secara eksplisit apakah bentuk baru yang diterima termasuk kontrak aplikasi.
Tidak. Perbandingan yang dijelaskan di sini menangani aturan origin kode Anda. Itu tidak membuktikan keterpercayaan layanan jarak jauh atau keamanan permintaan berikutnya. Tinjau kebutuhan terpisah itu di tempat aplikasi membuat permintaan tersebut.
Utamakan nama host sintetis dan hilangkan kredensial kecuali penting bagi kasus penolakan. Tinjau tujuan endpoint dan alat. Server model lokal yang berjalan terpisah tidak menjadikan setiap alat terhubung bersifat lokal, termasuk alat untuk memeriksa URL.
Orivelle · Diperbarui 2026-10-25