Expressjs, Nodejs tabanlı açık kaynak kodlu bir web uygulama çerçevesidir Kullanıcılara kolay ve hızlı bir şekilde web uygulamaları oluşturma, yönetme ve taşıma imkanı sağlar Session ise web sitelerinde kullanılan bir mekanizmadır ve kullanıcıların web sitesinde yaptığı etkileşimleri takip eder Session sınırlama ise kullanıcının web sitesindeki oturumunun belirli bir süre sonra otomatik olarak sonlandırılmasıdır Expressjs kullanarak session sınırlama yapmak oldukça önemlidir, çünkü bu sayede kullanıcıların hesaplarını ve verilerini koruyabilirsiniz
Express.js, Node.js platformunda çalışan, açık kaynak kodlu bir web uygulama çerçevesidir. Geliştiricilere, web uygulamalarını hızlı ve kolay bir şekilde oluşturma, yönetme ve taşıma imkanı sağlar. Sadece üst düzey bir uygulama sunmakla kalmaz, aynı zamanda özel uygulama gereksinimleri için modüler bir yapı sunar.
Express.js, birçok özellik sunması nedeniyle popüler bir seçimdir. Routing, HTTP, request/response işleme, session yönetimi, birçok şablon motoru ve benzeri gibi özellikleri barındırır. İyi bir topluluk desteği sayesinde güncelliğini her zaman korur.
Session Nedir?
Session, web sitelerinde kullanılan bir mekanizmadır. İngilizce'de "session" kelimesi, Türkçe'de "oturum" olarak kullanılır. Kullanıcıların web sitesinde yaptıkları etkileşimler, örneğin; giriş yapma, sayfa gezinme, çıkış yapma, bir sepete ürün ekleme, dil tercihi belirleme durumları, bu oturum üzerinden takip edilir.
Oturumlar, web sitesine giren her bir kullanıcının birbirinden ayrılması için kullanılır. Oturum, kullanıcının web sitesine ne zaman girdiği, hangi sayfaları ziyaret ettiği, hangi işlemleri gerçekleştirdiği gibi bilgileri tutar. Bu bilgiler, kullanıcının web sitesinde işlem yaparken kritik öneme sahiptir. Bu nedenle, oturum bilgileri dikkatli bir şekilde korunmalı ve güvenliği sağlanmalıdır.
Session Sınırlama Nedir?
Session sınırlama, bir kullanıcının web sitesindeki oturumunun belli bir süre sonra otomatik olarak sonlandırılmasıdır. Bu, kullanıcıların bilgisayar başında uzun süre oturduklarında veya bir web sitesinde oturum açık unuttuklarında oluşabilecek güvenlik açıklarını önlemek için önemlidir.
Özellikle e-ticaret siteleri, bankacılık ve finans kuruluşları gibi hassas verilerin saklandığı web siteleri için session sınırlama hayati önem taşır. Böylece kullanıcıların hesaplarına ve verilerine yetkisiz erişim engellenir.
Session sınırlama işlemi, web sitesinin sunucusunda gerçekleştirilir ve kullanıcıya sunulan bir işlev değildir. Genellikle, oturumun sonlandırılma süresi önceden belirlenir ve belirtilen süre zarfında herhangi bir etkileşim olmadığında oturum otomatik olarak sonlandırılır. Bu, web sitesindeki kullanıcı verilerinin güvenliğini artırmaya yardımcı olur.
Session Sınırlama Neden Önemlidir?
Session sınırlama, gerçekleştirilen işlemleri güvende tutmak ve kullanıcı güvenliğini sağlamak için oldukça önemlidir. Kullanıcıların hesaplarına ve kişisel verilerine izinsiz erişim engellenir. Bu şekilde, kötü niyetli kişilerin sisteme giriş yaparak, kullanıcıların özel bilgilerine erişimi engellenir.
Session sınırlama, bir kullanıcının web sitesindeki oturumunun belli bir süre sonra otomatik olarak sonlandırılmasıdır. Bu sayede, kullanıcı kendini herhangi bir risk altında hissetmeden işlem yapabilir. Özellikle bankacılık işlemleri veya e-ticaret sitelerinde, session sınırlama oldukça önemlidir.
Bunun yanı sıra, session sınırlama, kullanıcıların hesaplarına ve kişisel bilgilerine izinsiz erişimde bulunanların da önünü keser. Kullanıcıların hesaplarındaki bilgilerin tamamen güvenli olduğu anlamına gelir. Böylece kullanıcıların güvende olmaları, bir web uygulaması için oldukça önemlidir.
Express.js Kullanarak Nasıl Yapılır?
öncelikle express-session modülünün yüklenmesi gerekir. Bu modül, oturumların saklanması için gerekli olan araçları sağlar. Modül, express uygulamasının kullanabileceği bir middleware olarak kullanılabilir. Bunun için, öncelikle express-session modülü yüklenir ve uygulama içerisinde kullanılır. Örneğin, aşağıdaki kodda, express uygulaması oluşturulmuş ve session sınırlaması yapılmıştır:```javascriptconst express = require('express');const session = require('express-session');const app = express();app.use(session({ secret: 'my secret', resave: false, saveUninitialized: false, cookie: { secure: true }}));app.get('/', (req, res) => { if (req.session.views) { req.session.views++; res.setHeader('Content-Type', 'text/html'); res.write('views: ' + req.session.views + '
'); res.write('expires in: ' + (req.session.cookie.maxAge / 1000) + 's
'); res.end(); } else { req.session.views = 1; res.end('welcome to the session demo. refresh!'); }});app.listen(3000);```Bu kodda, uygulamada session sınırlaması için express-session modülü kullanılmıştır. Modül, uygulama çalıştırıldığında otomatik olarak devreye girer ve oturumların yönetilmesini sağlar.Session sınırlaması yapmak için, session middleware'i kullanarak öncelikle oturum ayarlarını belirlemeniz gerekir. Bu ayarlar, oturumların saklanması, yenilenmesi ve sonlandırılması için gerekli olan parametrelerdir. Örneğin, yukarıdaki kodda "secret" parametresi ile oturum şifrelenir ve güvenli hale getirilir. "resave" ve "saveUninitialized" parametreleri, oturumların saklanması ve yenilenmesi için gerekli ayarları yapar.Daha sonra, uygulamanın middleware'inde session kullanılması için "app.use(session({...}))" şeklinde bir kod bloğu oluşturulur. Böylece, session sınırlaması aktif hale gelir ve oturumların saklanması için gerekli olan araçlar uygulamaya dahil edilir.Son olarak, uygulamada kullanıcının oturumunun sonlandırılması için belirli bir süre tanımlamanız gerekir. Bu süre, "cookie" parametresinin içinde tanımlandığı gibi; örneğin, yukarıdaki kodda cookie süresi "secure: true" ile belirlenmiştir.Express.js kullanarak session sınırlama yapmak oldukça önemlidir, çünkü bu sayede kullanıcıların hesaplarını ve verilerini koruyabilirsiniz. Ayrıca, otomatik oturum sonlandırma özelliği sayesinde, uygulamanızı olası güvenlik açıklarından koruyabilirsiniz.express-sessionexpress-session, Express.js'in oturumları yönetmesine yardımcı olan bir modüldür. Bu modül, sunucu tarafında oturum bilgilerinin nasıl saklanacağına ve kontrol edileceğine ilişkin işlevleri otomatikleştirir. express-session modülü, kullanıcıların verilerinin güvenliğini artırmak için otomatik olarak oturumlarını temizler.
express-session modülü, oturum verilerinin nerede saklanacağına karar vermeyi kolaylaştırır. Örneğin, oturum verilerini hafızada saklayabilirsiniz. Ancak bu, güvenlik riskleri nedeniyle önerilmez. Verilerin diskte saklanması daha güvenlidir. Bu nedenle, express-session modülü, diskte oturum verilerini saklamayı ve yönetmeyi sağlar.
Bunun yanı sıra, express-session modülü, kullanıcıların oturumları süresince belirli işlemleri yapmalarını da sağlar. Oturum sürelerinin özelleştirilmesi, kullanıcı deneyimini iyileştirirken, uygulama güvenliğini de artırır. Kullanıcı oturumları belirli bir süre sonra otomatik olarak sonlandırılabilir ve oturum süresi uzatılabilir.
express-session modülü aynı zamanda oturumların doğrulanması için kullanılabilir. Bu da kullanıcıların, uygulama kaynaklarına sadece doğru şekilde doğrulandıktan sonra erişebilecekleri anlamına gelir. Bu özellik, güvenliği daha da artırır ve uygulamanın güvenli kalmasını sağlar.
adlı bir modül kullanılabilir. Bu modül, oturum bilgilerinin saklanması ve otomatik olarak sonlandırılması için gerekli araçları sağlar.Express.js kullanarak session sınırlama yapmak için öncelikle express-session adlı bir modül kullanılabilir. Bu modül, oturum bilgilerinin saklanması ve otomatik olarak sonlandırılması için gerekli araçları sağlar. Bu modülü projemize dahil etmek için npm paket yöneticisini kullanabiliriz.
Öncelikle aşağıdaki komutu terminalde çalıştırarak express-sessionmodülünü projenize yükleyebilirsiniz.
```npm install express-session```
Modülü projenize ekledikten sonra, web uygulamamızda oturumların kullanımını başlatmak için express-session modülüne ihtiyaç duyacağız. Bunun için, express-session modülünü projemize dahil etmemiz gerekir.
```javascriptvar session = require('express-session');```
Daha sonra, oturumlar için gerekli olan konfigürasyon ayarlarını yaparak, oturumların ne kadar süre sonra sonlanacağı gibi özellikleri belirleyebilirsiniz.
Örneğin, aşağıdaki gibi session süresini 1 saat (3600000 ms) olarak ayarlayabilirsiniz.
```javascriptapp.use(session({ secret: 'my-secret-key', resave: false, saveUninitialized: true, cookie: { maxAge: 3600000 }}));```
Burada, "my-secret-key" bir güvenlik anahtarını temsil eder ve session süresi "maxAge" alanında belirtilir.
Buna ek olarak, oturumların sonlandırılması için belirli bir süre sonra kullanılmadığında otomatik olarak sonlandırılması gerekebilir. Bu işlemi aşağıdaki gibi yapabilirsiniz.
```javascriptreq.session.destroy(function(err) { // session destroyed})```
Bu kod oturumu yok eder ve oturum süresi dolduğunda tetiklenecek olan otomatik oturum sonlandırma işlemini başlatır.