Pengodean URL: jaga nilai tanpa merusak tautan

Tautan bisa bekerja sampai ditambah nama dengan &, + atau spasi. Nama itu belum tentu salah; beberapa karakter juga menjalankan fungsi struktur dalam URL.

Nilai bukan seluruh URL

Kodekan nilai parameter agar & tidak memulai parameter lain dan # tidak memulai fragmen. Mengodekan alamat lengkap justru perlu mempertahankan pemisah strukturnya.

Pilih menurut masukan: alamat utuh, komponen, atau nilai formulir. Hasil tepat pada satu konteks belum tentu cocok untuk konteks lain.

Referensi: WHATWG URL Standard — Percent encoding and form encoding

Makna + bergantung konteks

Dalam formulir, + berarti spasi dan %2B berarti tanda tambah asli. Pada komponen, spasi biasanya %20 dan + tidak otomatis dianggap spasi.

Jangan mengganti semua + sebelum tahu format sumber. Pisahkan nilai asli pengguna dari representasi yang dipakai untuk membawanya.

Referensi: WHATWG URL Standard — Percent encoding and form encoding

Dekode adalah langkah tertentu, bukan lingkar perbaikan

Mendekode 2 kali bisa mengubah makna. Ketahui jumlah lapisan yang dimaksud sistem pembuat, bukan mengulang sampai teks tampak familier.

Alat hanya mengubah representasi teks; tidak mengunjungi atau memeriksa tujuan. Tautan terbaca bukan bukti aman, dan pengodean informasi sensitif tidak menyembunyikannya.

Contoh: nilai dengan +, spasi, dan &

A+B & C menjadi A%2BB%20%26%20C sebagai komponen. Dalam formulir menjadi A%2BB+%26+C. Masing-masing kembali ke nilai asli dengan aturan dekode yang sesuai.

%252F menjadi %2F setelah satu dekode dan / setelah yang kedua. Itu dapat mengubah jalur atau nilai; pengulangan bukan otomatis pembersihan aman.

Referensi