URL mengandung lebih banyak struktur daripada yang terlihat

Tujuan mencakup skema, host, port opsional, jalur, kueri, dan fragmen. Memperlakukannya sebagai string arbitrer membuat validasi menjadi tidak konsisten dan dapat menimbulkan perilaku yang tidak aman atau mengejutkan.

Parsing nilai lengkap satu kali dengan parser URL yang diuji, lalu terapkan aturan pada hasil terstruktur.

Fragmen tidak termasuk dalam permintaan server

Browser menyimpan fragmen setelah tanda pagar dan tidak mengirimkannya ke server tujuan. Layanan pengalihan dapat menyimpannya untuk navigasi klien, namun platform mungkin dengan sengaja menghapus fragmen ketika kontraknya memperlakukannya sebagai status UI lokal.

Kebijakan mana pun yang dipilih harus terlihat dan diuji. Pengkodean hash secara diam-diam ke dalam jalur mengubah tujuan dan merupakan bug normalisasi yang umum.

Destinasi pribadi perlu perhatian khusus

Host loopback, privat, link-lokal, dan internal bisa menjadi berbahaya ketika platform juga mengambil pratinjau atau melakukan pemeriksaan kesehatan. Menolaknya sebelum penyimpanan menyederhanakan batas keamanan.

Resolusi nama host memerlukan pemeriksaan tambahan dalam pengambilan terisolasi karena nama host yang terlihat publik nantinya dapat ditetapkan ke alamat pribadi. Validasi string saja bukanlah pertahanan SSRF yang lengkap.

API Pengembang · Akses dan batasan saat ini