Güzel konu hocam, eline sağlık. Yukarıda da denmiş, yapay zekayla yazılan projelerde bunu çok sık görüyorum. Kendi projesini kontrol etmek isteyenler için pratik birkaç not ekleyeyim:
- En kolay test: iki ayrı hesap aç. A hesabıyla bir kayıt oluştur, adresteki ya da istekteki id'yi kopyala, B hesabıyla aynı isteği at. Görebiliyor ya da değiştirebiliyorsan açık var. Tarayıcının Network sekmesi bile yetiyor.
- Sadece GET'e bakmayın. Asıl tehlikeli olanlar PUT/DELETE ve dosya indirme uçları (fatura, sipariş PDF'i gibi), unutulan hep bunlar oluyor.
- id'yi UUID yapmak tek başına çözüm değil, sadece tahmin etmeyi zorlaştırıyor. Asıl çözüm her sorguda "bu kayıt bu kullanıcıya mı ait" kontrolünü sunucuda yapmak. Örneğin WHERE id = ? AND user_id = ?, kontrol etmeden getirip sonra bakmak değil.
- Frontend'de butonu gizlemek koruma değil, istek elle atılabiliyor.