Node.js Güvenlik: Authentication ve Authorization
Samet Karabulut
January 7, 2026
•3 min read
Node.js Güvenlik: Authentication ve Authorization
Node.js, günümüzde en popüler ve geniş olarak kullanılan backend teknolojilerinden biridir. Ancak, güvenlik her zaman en önemli konulardan biridir. Bu yazıda, Node.js güvenlik konusuna odaklanacağız, özellikle authentication ve authorization hakkında konuşacağız.
Giriş
Node.js uygulamaları geliştirirken, kullanıcıların kimliklerini doğrulamak ve onlara uygun yetkileri sağlamak önemlidir. Authentication, kullanıcıların kimliklerini doğrulama sürecini ifade ederken, authorization kullanıcıların hangi işlemleri gerçekleştirebileceğini belirleme sürecini ifade eder.
Authentication
Authentication, kullanıcıların kimliklerini doğrulama sürecidir. Bu, genellikle bir kullanıcı adı ve parola ile yapılır. Node.js'de authentication için birçok kütüphane mevcuttur, örneğin Passport.js.
Passport.js, Node.js için popüler bir authentication kütüphanesidir. Aşağıdaki kod örneğinde, Passport.js'i kullanarak bir kullanıcıyı doğrulama işlemi gösterilmektedir:
const express = require('express');
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const app = express();
passport.use(new LocalStrategy(
(kullaniciAdi, parola, done) => {
// Kullanıcı doğrulama mantığı burada yazılır
if (kullaniciAdi === 'admin' && parola === 'sifre') {
return done(null, { id: 1, kullaniciAdi: 'admin' });
} else {
return done(null, false);
}
}
));
app.post('/girisyap', passport.authenticate('local', { successRedirect: '/', failureRedirect: '/girisyap' }));
Yukarıdaki kod örneğinde, Passport.js kullanarak bir yerel strategy tanımlanmıştır. Kullanıcı adı ve parola ile doğrulama yapılır ve eğer başarılı olursa, kullanıcı ana sayfaya yönlendirilir.
Authorization
Authorization, kullanıcıların hangi işlemleri gerçekleştirebileceğini belirleme sürecidir. Bu, genellikle roller ve izinler ile yapılır.
Node.js'de authorization için birçok approach mevcuttur, örneğin middleware fonksiyonları ile.
Aşağıdaki kod örneğinde, middleware fonksiyonu kullanarak authorization işlemi gösterilmektedir:
const express = require('express');
const app = express();
const yetkiliKullanici = (req, res, next) => {
if (req.user && req.user.rol === 'admin') {
next();
} else {
res.status(401).send('Yetkili değilsiniz');
}
};
app.get('/yonetim', yetkiliKullanici, (req, res) => {
res.send('Yönetim paneli');
});
Yukarıdaki kod örneğinde, bir middleware fonksiyonu tanımlanmıştır. Bu fonksiyon, bir kullanıcıyı yetkili olup olmadığını kontrol eder ve eğer yetkili ise, sonraki fonksiyona geçer.
Uygulanabilir İçgörüler ve İpuçları
Node.js güvenlik konusunda birkaç önemli nokta vardır:
- Kullanıcı parolalarını nunca açık metin olarak saklamayın, yerine parola hash'lerini saklayın.
- SSL/TLS kullanın, bu sayede veri iletimi şifrelenir.
- Input validation ve sanitization yapın, bu sayede SQL injection ve cross-site scripting (XSS) gibi saldırıları önleyebilirsiniz.
Güvenlik her zaman en önemli konulardan biridir, özellikle kullanıcı verileri ile çalışırken.
Sonuç
Node.js güvenlik, özellikle authentication ve authorization, önemlidir. Bu yazıda, Node.js'de authentication ve authorization hakkında konuşuldu ve pratik örnekler verildi.
Güvenlik, her zaman en önemli konulardan biridir. Umarız bu yazı, Node.js güvenlik hakkında değerli bilgiler sunmuştur.
Yorumlar
Henüz yorum yok. İlk yorumu sen yap.