Çerez Kullanımı

Bu web sitesi, deneyiminizi iyileştirmek ve site kullanımını analiz etmek için çerezler kullanmaktadır. Gizlilik Politikası sayfamızdan detaylı bilgi alabilirsiniz. Çerezleri kabul ederek, KVKK kapsamında verilerinizin işlenmesine onay vermiş olursunuz.

Samet Karabulut - Node.js Güvenlik: Authentication ve Authorization
#SIBERGüVENLIK #YAZıLıM #NODE.JS #GüVENLIK

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.