Node.js'de Korumalarla Manuel Tespit Nasıl Gerçekleştirilir

Node Js De Korumalarla Manuel Tespit Nasil Gerceklestirilir



Güvenlik açıklarını tespit etmek, kodunuzu her türlü siber saldırıya karşı korumak ve bellek sızıntılarını önlemek bir programcının en temel görevleridir. Kodun içinde bulunan güvenlik açıklarınızın tespit edilmesi ve tahmin edilmesi çok zor ve aynı zamanda zaman alıcı bir süreçtir. Bununla birlikte, Nodejs'de manuel tespitin yanı sıra uygulamayı koruma sürecinin de yapılabileceği çeşitli yaklaşımlar vardır.

Bu makale, aşağıdaki bölümleri ele alarak Nodejs'deki güvenlik önlemleriyle manuel algılama gerçekleştirmeye yönelik yaklaşımları açıklayacaktır:







    • Hız Sınırlayıcının Kullanımı
    • Veri İletimi için TLS/SSL Kullanımı
    • Kaçış Çıkışları

Node.js'de Korumalarla Manuel Tespit Nasıl Gerçekleştirilir

Manuel algılama, Node.js kodundaki olası sorunları belirlemek için kodun birden çok kez incelenmesiyle gerçekleştirilir. Olası sorunlara sözdizimi hataları, mantıksal hatalar vb. aranarak erişilir. Kullanımı ' hata ayıklayıcı ' Ve ' linter ” Node.js programındaki potansiyel tehditleri veya hataları tanımlamak için de kullanılabilir.



Kodunuzun ömrünü uzatırken kodun her türlü potansiyel iş parçacığından korunabileceği çeşitli yöntemler vardır. Bu yöntemler aşağıda sıralanmıştır:



Yöntem 1: Hız Sınırlayıcıyı Kullanarak Node.js Programını Koruyun

Uygulamanızın hizmet reddi saldırılarına maruz kalmasını önlemek ve çok fazla isteğin engellenmesiyle uygulamanızın performansını artırmak. Pratik uygulaması aşağıda gösterilmiştir:





const express = gerektirir ( 'ifade etmek' ) ;
sabit oranLim = gerektirir ( 'ekspres oran sınırı' ) ;
const güvenliUygulama = ekspres ( ) ;

// Hız sınırlayıcı bir ara yazılım tanımlama
const sınırlama = oranLim ( {
pencere: 60 * 1000 ,
maksimum: 100 , // Dakika başına maksimum istek
İleti: 'Üzgünüm! Oran limiti aşıldı' ,
} ) ;
// Hız sınırlayıcı ara yazılımı uygulama
SafeApp.use ( sınırlayıcı ) ;
// Bir rota ve yanıt işleyicisi tanımlama
SafeApp.get ( '/' , ( istek, yanıt ) = > {
yanıt.gönder ( 'Merhaba Linuxhint Topluluğu!' ) ;
} ) ;

// Ekspres sunucusunun başlatılması
const localPort = proses.env.PORT || 3000 ;
SafeApp.listen ( yerel Bağlantı Noktası, ( ) = > {
konsol.log ( ' Sunucu port numarasında başladı: ${localPort}


Yukarıdaki kodda:

    • İlk önce “ ifade etmek ' Ve ' ekspres oran limiti “ana paketlere” js ' dosya. “ Başlat ifade etmek() ” uygulamasını seçin ve ona “ adını atayın güvenli Uygulama ”.
    • Daha sonra, ' için özel değerleri ileterek hız sınırlayıcı bir ara yazılım tanımlayın. WindowsM'ler ', ' maksimum ', Ve ' İleti “ içindeki özellikler ekspres oran limiti ” paketi.
    • Şimdi bu hız sınırlayıcıyı ekspres uygulama üzerinden ' kullanmak() ' yöntem.
    • Daha sonra “ elde etmek() ” Sunucu üzerinden istek olarak rastgele bir mesaj gönderme yöntemi.
    • Son olarak “” seçeneğini kullanarak port numarasını ayarlayın. ortam BAĞLANTI NOKTASI ” özelliğini kullanın ve ekspres uygulamanın belirtilen bağlantı noktası numarasını dinlemesini sağlayın.

Yöntem 2: Veri İletimi için TLS/SSL'yi Kullanarak Node.js Programını Koruyun

TLS/SSL, sunucu ve istemci tarafı arasında iletilen verileri şifreleyen güvenli bir yuva katmanıdır. Bu, kredi kartı numaraları gibi hassas verilerin saldırganlar tarafından ele geçirilmesini önler ve aynı zamanda uyumluluk gerekliliklerini karşılamanıza da yardımcı olur:



const fs = gerektirir ( 'f' ) ;
const express = gerektirir ( 'ifade etmek' ) ;
const httpsObj = gerektirir ( 'https' ) ;

const güvenliUygulama = ekspres ( ) ;
sabit seçenekler = {
anahtar: fs.readFileSync ( 'anahtar.pem' ) ,
sertifika: fs.readFileSync ( 'sertifika.pem' ) ,
} ;

const SettingServer = httpsObj.createServer ( seçenekler, SafeApp ) ;

SafesafeApp.get ( '/' , ( istek, yanıt ) = > {
yanıt.gönder ( 'Merhaba Linuxhint Topluluğu!' ) ;
} ) ;

ayarSunucusu.dinle ( 8000 ) ;


Yukarıdaki kodun açıklaması:

    • Başlangıçta gerekli Node.js'yi içe aktarın ' fs ', ' ifade etmek ', Ve ' https projenizdeki bağımlılıkları belirleyin ve “express” uygulamasını “adıyla başlatın” güvenli Uygulama ”.
    • Şimdi bir “ seçenekler ” Özel anahtar ve sertifika için dosyaları listeleyin ve iletin” anahtar ' Ve ' sertifika ' özellikler. Dosyalar “ kullanılarak yapılabilir. açılırsl ” komutu ve bu dosyalar bağlantıların güvenliğinin sağlanmasına yardımcı olur.
    • Son olarak “” komutunu çağırarak bir sunucu oluşturun. createServer() ” yöntemini kullanın ve “'yi iletin seçenekler İlk parametre olarak ” dizisini, ikinci olarak ise express uygulamasını kullanın.
    • TSL/SSL kimlik doğrulamasını uygulama üzerinden uygulamak için, ' elde etmek() Gereksinimlere göre yöntem.

Yöntem 3: Kaçış Çıkışlarını Kullanarak Node.js Programını Koruyun

Node.js uygulamanızın siteler arası komut dosyası çalıştırmasını önlemek için “ XSS ” saldırılarında en yaygın ve popüler teknik, özel karakterlerin çıktıdan kaçmasıdır. XSS saldırılarını önlemek için özel karakterler HTML formatına dönüştürülür ve dönüşüm “ kaçış-html ” paket nesnesi:

const escObj = gerektirir ( 'kaçış-html' ) ;
const kuklaStr = '' ;

const modStr = escObj ( kuklaStr ) ;
konsol.log ( karşıStr ) ;


Yukarıdaki kodun açıklaması şu şekildedir:

    • İlk önce ' kaçış-html “paket ana bilgisayara aktarıldı” js ” dosyası ve nesnesi veya örneği “ escObj ” değişkeni.
    • Daha sonra, özel karakterler içeren rastgele bir kod satırı ' kuklaStr ” değişkeni.
    • Bundan sonra “ kuklaStr “” içindeki değişken escObj ” Kodu saf HTML biçimine dönüştürmek için parantez.
    • Sonuç bir değişkende saklanır ' karşıStr ” daha sonra konsolda görüntülenir.

Yukarıdaki kodun çıktısı, sağlanan dizeyi içeren özel karakterlerin artık HTML kodlama formatına dönüştürüldüğünü gösterir:


Bu tamamen Nodejs'deki güvenlik önlemleriyle manuel tespit gerçekleştirmekle ilgilidir.

Çözüm

Manuel algılamayı gerçekleştirmek için kodunuzu herhangi bir sözdizimi veya mantıksal hata türüne karşı birden çok kez inceleyin ve kod üzerinde birden çok test gerçekleştirin. Node.js programınızı her türlü siber saldırıya karşı korumak veya veri sızıntısını önlemek için “ Hız Sınırlayıcı ', ' Veri İletimi için TLS/SSL ', Ve ' Kaçış Çıkışları ” teknikleri. Bu kılavuz, Node.js'deki güvenlik önlemleriyle manuel algılama gerçekleştirme prosedürünü göstermektedir.