OOrivelle
Ruang kerja kode dengan AI

Perbandingan asal HTTPS terbatas

Bandingkan asal HTTPS untuk nama DNS ASCII bersufiks alfabet dengan porta baku 443.

● ● ●Orivelle●
Alur kerja · Perbandingan asal HTTPS terbatas ×
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)
✳Perbandingan asal HTTPS terbatas
✓ PerubahanTinjau sebelum menerapkan ↗
Ilustrasi ruang kerja
01

Proyek

Uji huruf besar dan abaikan jalur, tolak kredensial, IP literal, spasi dan porta di luar 1–65535.

02

Tinjau sebelum menerapkan

Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.

03

Model

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.

Alur kerja

Perbandingan asal HTTPS terbatas

Alur kerja ↗
Alur kerja
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)
Ruang kerja kode dengan AI

Nyatakan penerimaan URL dan keputusan origin secara eksplisit

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.

Sebelum mengubah aturan origin

Haruskah parser URL umum memutuskan seluruh kebijakan?

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.

Bisakah normalisasi tanpa sengaja memperluas himpunan masukan yang 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.

Apakah kecocokan origin memvalidasi layanan jarak jauh?

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.

Haruskah kasus uji diagnostik berisi URL produksi atau kredensial?

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.

Unduh untuk Windows ↗

Orivelle · Diperbarui 2026-10-25