Cookie dan sesi untuk Phoenix
high5 titik pemeriksaan
Cookie sesi adalah kunci akun. Atribut yang hilang mengubah satu celah XSS menjadi pengambilalihan akun penuh.
Yang harus ada di Phoenix
- Atribut Secure pada setiap cookie
- HttpOnly pada cookie sesi
- SameSite=Lax atau Strict pada cookie sesi
- Tidak ada ID sesi di URL atau localStorage
- Rotasi sesi setelah login dan invalidasi saat logout
Cara memperbaiki
- 1Set atribut cookie di level framework agar semua cookie mewarisinya
- 2Pindahkan token dari localStorage ke cookie HttpOnly
Konteks Phoenix
Elixir web framework running on the BEAM with channels and LiveView.
LiveView pushes state over websockets; authorise every event handler, not just the initial render.