Authentication ile authorization arasındaki fark nedir?

Cevap

  • Authentication (kimlik doğrulama): "Sen kimsin?" sorusunun cevabı. Kullanıcı adı/parola, OAuth ile Google girişi, MFA.
  • Authorization (yetkilendirme): "Bunu yapmaya iznin var mı?" Kimliği bilinen kullanıcının hangi kaynağa, hangi işlemle erişebileceği.

Sıra her zaman önce kimlik doğrulama, sonra yetkilendirmedir. HTTP'de karşılıkları: kimlik yoksa/geçersizse 401, kimlik var ama yetki yoksa 403.

Yaygın yetkilendirme modelleri

  • RBAC (rol tabanlı): admin, editor, viewer gibi roller ve izinleri.
  • ABAC (öznitelik tabanlı): "kullanıcı yalnızca kendi departmanının belgelerini düzenleyebilir" gibi kurallar.
  • Sahiplik kontrolü: kaynak kullanıcının mı?
app.delete("/api/posts/:id", requireAuth, async (req, res) => {
  const post = await Post.findById(req.params.id);
  if (!post) return res.sendStatus(404);
  // authorization: sahibi veya admin mi?
  if (post.authorId !== req.user.id && req.user.role !== "admin") {
    return res.sendStatus(403);
  }
  await post.deleteOne();
  res.sendStatus(204);
});

En sık yapılan hata, yalnızca giriş yapılmış olmayı kontrol edip kaynağın sahipliğini kontrol etmemektir (IDOR).

  1. CORS nedir? Neden CORS hatası alırız?OrtaWeb GüvenliğiFull Stack
  2. XSS ve CSRF saldırıları nedir, nasıl korunulur?ZorWeb GüvenliğiFull Stack
  3. Güvenli cookie ayarları nelerdir? Session hijacking nasıl önlenir?OrtaWeb GüvenliğiFull Stack
  4. Content Security Policy (CSP) nedir ve nasıl yapılandırılır?ZorWeb GüvenliğiFull Stack
  5. OWASP Top 10 nedir? En önemli maddelerini özetleyin.OrtaWeb GüvenliğiFull Stack
  6. Parolalar veritabanında nasıl saklanmalıdır? bcrypt ve Argon2 neden tercih edilir?OrtaWeb GüvenliğiFull Stack

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle