Ç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 28, 2026

3 min read

Node.js, günümüzde en popüler sunucu tarafı teknolojilerinden biridir. Ancak, güvenlik konusu her zaman kritiktir. Bu yazıda, Node.js güvenlik konusuna odaklanacağız, özellikle authentication ve authorization konularını ele alacağız.

İlk olarak, Node.js güvenlik neden önemlidir?

Node.js uygulamaları, genellikle büyük miktarda veriyi işler ve bu veriler çok değerli olabilir. Bu nedenle, bu verilerin güvenliğini sağlamak kritiktir. Ayrıca, Node.js uygulamaları genellikle internet üzerinden erişilebileceği için, güvenlik tehditlerine karşı korunmak önemlidir.

Şimdi, authentication ve authorization konularına daha yakından bakalım.

Authentication

Authentication, bir kullanıcının kimliğini 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 ve framework mevcuttur.

Örneğin, Passport.js, Node.js için popüler bir authentication kütüphanesidir. Aşağıdaki kod örneğinde, Passport.js ile nasıl authentication yapılacağı gösterilmektedir:

const express = require('express');
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;

const app = express();

passport.use(new LocalStrategy(
  (username, password, done) => {
    // Kullanıcı adı ve parolayı doğrula
    if (username === 'admin' && password === 'password') {
      return done(null, { id: 1, username: 'admin' });
    }
    return done(null, false, { message: 'Kullanıcı adı veya parola hatalı' });
  }
));

app.post('/login', passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login' }));

Bu kod örneğinde, Passport.js ile local authentication yapılmaktadır. Kullanıcı adı ve parola doğrulandıktan sonra, kullanıcı ana sayfaya yönlendirilir.

Authorization

Authorization, bir kullanıcının belirli bir kaynağı erişme yetkisini belirleme sürecidir. Bu, genellikle roller veya izinler ile yapılır. Node.js'de, authorization için birçok kütüphane ve framework mevcuttur.

Örneğin, Casl, Node.js için popüler bir authorization kütüphanesidir. Aşağıdaki kod örneğinde, Casl ile nasıl authorization yapılacağı gösterilmektedir:

const { AbilityBuilder } = require('casl');

const ability = AbilityBuilder.define((can, cannot) => {
  can('read', 'article');
  cannot('delete', 'article');
});

console.log(ability.can('read', 'article')); // true
console.log(ability.can('delete', 'article')); // false

Bu kod örneğinde, Casl ile bir yetenek tanımı yapılmaktadır. Kullanıcı, articleları okuyabilir ancak silemez.

Node.js güvenlik için birçok ipucu ve içgörü mevcuttur. İşte bazıları:

Parolaları nikdy plain text olarak saklamayın. Her zaman hashed ve salted olarak saklayın.

Kullanıcı girişini doğrulamak için iki faktörlü authentication kullanın.

Güncel ve güvenli kütüphaneler ve frameworkler kullanın.

Sonuç

Node.js güvenlik, özellikle authentication ve authorization konuları, çok önemlidir. Bu yazıda, Node.js güvenlik konusuna odaklandık ve authentication ve authorization konularını ele aldık. Ayrıca, bazı pratik örnekler ve kod parçacıkları sunduk.

Node.js güvenlik için birçok ipucu ve içgörü mevcuttur. Daima güncel ve güvenli kütüphaneler ve frameworkler kullanın, parolaları nunca plain text olarak saklamayın ve iki faktörlü authentication kullanın.

Yorumlar

Henüz yorum yok. İlk yorumu sen yap.