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.