Latihan 1: SSRF (Server-Side Request Forgery) — Security

Latihan 1 dari materi SSRF (Server-Side Request Forgery) di Security — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi fungsi isUrlSafeForFetch(url, allowlist) yang memutuskan apakah sebuah URL aman di-fetch oleh server. Kerangka try...catch, array ok, dan tiga console.log sudah ada di kode awal, biarkan saja.

  1. Di dalam try, baca URL-nya dengan new URL(url). Kalau parsing gagal, new URL melempar error dan catch mengembalikan false.
  2. Kalau protocol-nya bukan 'https:', kembalikan false (tolak http:, file:, gopher:, dan lainnya).
  3. Kembalikan true hanya kalau hostname ada di allowlist, tanpa membedakan huruf besar dan kecil. Selain itu false.

Yang dicek, dengan ok = ['images.cdn.com', 'storage.googleapis.com']:

Tiga console.log di kode awal mencetak true, false, false.

Hint