Uygulamalarınızı korumak için en iyi uygulamaları, yaygın güvenlik açıklarını, koruma çerçevelerini ve gerçek dünya örneklerini kapsayan sağlam bir JavaScript güvenlik altyapısının nasıl uygulanacağını öğrenin.
JavaScript Güvenlik Altyapısı: Kapsamlı Bir Koruma Çerçevesi Uygulama Rehberi
Modern web geliştirmenin temel taşı olan JavaScript, aynı zamanda kötü niyetli aktörler için de birincil hedeftir. Sağlam bir güvenlik altyapısı, uygulamalarınızı ve kullanıcılarınızı çok çeşitli tehditlerden korumak için elzemdir. Bu rehber, en iyi uygulamaları, yaygın güvenlik açıklarını ve eyleme geçirilebilir stratejileri kapsayan bir JavaScript güvenlik koruma çerçevesi uygulamasına dair kapsamlı bir genel bakış sunmaktadır.
Genel Durumu Anlamak: JavaScript Güvenlik Açıkları
Uygulamaya geçmeden önce, JavaScript uygulamalarını rahatsız eden yaygın güvenlik açıklarını anlamak çok önemlidir. Bu tehditleri tanımak, dayanıklı bir güvenlik duruşu oluşturmanın ilk adımıdır.
Siteler Arası Komut Dosyası Çalıştırma (XSS)
XSS saldırıları, kötü niyetli komut dosyalarının diğer kullanıcılar tarafından görüntülenen web sayfalarına enjekte edilmesiyle meydana gelir. Bu komut dosyaları hassas verileri çalabilir, kullanıcıları kötü niyetli web sitelerine yönlendirebilir veya web sitesinin görünümünü bozabilir. Üç ana XSS türü vardır:
- Depolanmış XSS: Kötü niyetli komut dosyası, hedef sunucuda kalıcı olarak saklanır (örneğin, bir veritabanında, mesaj forumunda veya yorum bölümünde). Bir kullanıcı, saklanan komut dosyasını içeren sayfayı ziyaret ettiğinde, komut dosyası tarayıcısında çalışır.
- Yansıtılmış XSS: Kötü niyetli komut dosyası, bir hata mesajı, arama sonucu veya doğrudan kullanıcı girdisini içeren herhangi bir yanıt gibi web sunucusundan yansıtılır. Kullanıcı genellikle kötü niyetli bir bağlantıya tıklamaya veya komut dosyasını içeren bir formu göndermeye kandırılır.
- DOM Tabanlı XSS: Güvenlik açığı, istemci tarafı JavaScript kodunun kendisinde bulunur. Kötü niyetli komut dosyası, savunmasız bir işlev aracılığıyla DOM'a (Belge Nesne Modeli) enjekte edilir ve kullanıcının tarayıcısında yürütülür.
Örnek: Kullanıcı tarafından gönderilen yorumları düzgün bir şekilde temizlemeden görüntüleyen bir web sitesi düşünün. Bir saldırgan, <script>alert('XSS Saldırısı!');</script> gibi kötü niyetli bir komut dosyası içeren bir yorum gönderebilir. Diğer kullanıcılar yorumu görüntülediğinde, komut dosyası tarayıcılarında çalışarak bir uyarı kutusu gösterir. Bu basitleştirilmiş bir örnektir, ancak XSS saldırıları çok daha karmaşık olabilir.
Siteler Arası İstek Sahteciliği (CSRF)
CSRF saldırıları, bir kullanıcıyı farkında olmadan veya rızası olmadan bir web sitesinde eylemler gerçekleştirmesi için kandırır. Saldırgan, kullanıcının kimliği doğrulanmış oturumunu kötüye kullanarak web sitesine gönderilen kötü niyetli bir istek hazırlar. Bu, kullanıcının hesabında yetkisiz değişikliklere, satın almalara veya diğer hassas eylemlere yol açabilir.
Örnek: Bir kullanıcının çevrimiçi bankacılık hesabına giriş yaptığını varsayalım. Bir saldırgan, kullanıcıya görünüşte zararsız bir bağlantı içeren bir e-posta gönderebilir. Ancak, bağlantı aslında kullanıcının hesabından saldırganın hesabına para transferi için gizli bir istek içerir. Kullanıcı bankacılık hesabına giriş yapmışken bağlantıya tıklarsa, transfer farkında olmadan gerçekleşir.
Enjeksiyon Saldırıları
Enjeksiyon saldırıları, uygulama tarafından kullanıcı girdisinin nasıl işlendiğindeki güvenlik açıklarından yararlanır. Saldırganlar, giriş alanlarına kötü niyetli kod enjekte eder ve bu kod sunucu tarafından yürütülür. Yaygın enjeksiyon saldırısı türleri şunlardır:
- SQL Enjeksiyonu: Saldırganlar, giriş alanlarına kötü niyetli SQL kodu enjekte ederek güvenlik önlemlerini atlamalarına ve veritabanındaki hassas verilere erişmelerine olanak tanır.
- Komut Enjeksiyonu: Saldırganlar, giriş alanlarına kötü niyetli komutlar enjekte ederek sunucuda keyfi komutlar çalıştırmalarına olanak tanır.
- LDAP Enjeksiyonu: SQL enjeksiyonuna benzer, ancak LDAP (Lightweight Directory Access Protocol) sunucularını hedefler.
Örnek: Bir web sitesi, bir SQL sorgusu oluşturmak için kullanıcı girdisini kullanır. Bir saldırgan, bir giriş alanına ' OR '1'='1 gibi kötü niyetli SQL kodu girebilir, bu da kimlik doğrulamasını atlayabilir ve onlara veritabanına yetkisiz erişim sağlayabilir.
Kimlik Doğrulama ve Yetkilendirme Sorunları
Zayıf kimlik doğrulama ve yetkilendirme mekanizmaları, uygulamaları saldırılara karşı savunmasız bırakabilir. Yaygın sorunlar şunlardır:
- Zayıf Parolalar: Kullanıcıların kolayca tahmin edilebilecek parolalar seçmesi.
- Çok Faktörlü Kimlik Doğrulama (MFA) Eksikliği: Ek bir güvenlik katmanı ekleyen MFA'nın uygulanmaması.
- Oturum Yönetimi Güvenlik Açıkları: Oturum sabitleme veya oturum kaçırma gibi kullanıcı oturumlarının nasıl yönetildiğiyle ilgili sorunlar.
- Güvensiz Doğrudan Nesne Referansları (IDOR): Saldırganların, erişim yetkileri olmaması gereken kaynaklara erişmek için nesne kimliklerini manipüle etmesi.
Örnek: Bir web sitesi güçlü parola politikaları uygulamıyor. Bir saldırgan, bir kullanıcının parolasını tahmin etmek ve hesabına erişmek için kaba kuvvet tekniklerini kullanabilir. Benzer şekilde, bir web sitesi kullanıcı profilleri için sıralı kimlikler kullanıyorsa, bir saldırgan diğer kullanıcıların profillerine yetkisiz olarak erişmek için kimliği artırmayı deneyebilir.
Hizmet Reddi (DoS) ve Dağıtılmış Hizmet Reddi (DDoS)
DoS ve DDoS saldırıları, bir web sunucusunu trafikle boğarak meşru kullanıcılar için erişilemez hale getirmeyi amaçlar. Genellikle sunucu altyapısını hedef alsa da, JavaScript DDoS yükseltme saldırılarında kullanılabilir.
Diğer İstemci Tarafı Güvenlik Açıkları
- Tıklama Korsanlığı (Clickjacking): Kullanıcıları algıladıklarından farklı bir şeye tıklamaları için kandırmak.
- Ortadaki Adam (MITM) Saldırıları: Kullanıcı ve sunucu arasındaki iletişimin kesilmesi.
- Güvenliği İhlal Edilmiş Bağımlılıklar: Bilinen güvenlik açıklarına sahip üçüncü taraf kütüphaneleri kullanmak.
- Güvensiz depolama nedeniyle veri ihlalleri Özel verileri istemci tarafında korumasız bırakmak.
Bir JavaScript Güvenlik Koruma Çerçevesi Oluşturma
Sağlam bir JavaScript güvenlik koruma çerçevesi, geliştirme yaşam döngüsünün farklı aşamalarındaki güvenlik açıklarını ele alan çok katmanlı bir yaklaşımı kapsamalıdır. Bu, güvenli kodlama uygulamalarını, girdi doğrulamasını, çıktı kodlamasını, kimlik doğrulama ve yetkilendirme mekanizmalarını ve sürekli güvenlik testlerini içerir.
Güvenli Kodlama Uygulamaları
Güvenli kodlama uygulamaları, güvenli bir uygulamanın temelidir. Bu uygulamalar, güvenlik açıklarının en başta ortaya çıkmasını önlemeyi amaçlar. Temel ilkeler şunları içerir:
- En Az Ayrıcalık Prensibi: Kullanıcılara ve süreçlere görevlerini yerine getirmeleri için yalnızca gereken minimum ayrıcalıkları verin.
- Derinlemesine Savunma: Tek bir başarısızlık noktasına karşı koruma sağlamak için birden fazla güvenlik kontrolü katmanı uygulayın.
- Varsayılan Olarak Güvenli: Kullanıcıların doğru şekilde yapılandırmasına güvenmek yerine, uygulamaları varsayılan olarak güvenli ayarlarla yapılandırın.
- Girdi Doğrulama: Beklenen biçimlere ve aralıklara uyduğundan emin olmak için tüm kullanıcı girdilerini doğrulayın.
- Çıktı Kodlama: Kötü niyetli kodun web sayfalarına enjekte edilmesini önlemek için tüm çıktıları kodlayın.
- Düzenli Güvenlik Denetimleri: Potansiyel güvenlik açıkları için kodu düzenli olarak gözden geçirin.
Örnek: Kullanıcı girdisini işlerken, her zaman veri türünü, uzunluğunu ve biçimini doğrulayın. Girdinin beklenen kalıpla eşleştiğinden emin olmak için düzenli ifadeler kullanın. Örneğin, bir e-posta adresi bekliyorsanız, girdinin doğru biçimde olduğunu doğrulamak için bir düzenli ifade kullanın. Node.js'de, kapsamlı girdi doğrulaması için validator.js gibi kütüphaneler kullanabilirsiniz.
Girdi Doğrulama ve Temizleme
Girdi doğrulama, kullanıcı girdisinin beklenen biçime ve aralığa uygun olmasını sağlama sürecidir. Temizleme, girdiden potansiyel olarak kötü niyetli karakterleri kaldırmayı veya kaçış karakteri eklemeyi içerir. Bunlar, enjeksiyon saldırılarını önlemede kritik adımlardır.
En İyi Uygulamalar:
- Beyaz Liste Yaklaşımı: İzin verilen karakterlerin bir listesini tanımlayın ve yalnızca bu karakterleri içeren girdileri kabul edin.
- Kara Liste Yaklaşımı (Dikkatli Kullanın): İzin verilmeyen karakterlerin bir listesini tanımlayın ve bu karakterleri içeren girdileri reddedin. Bu yaklaşım daha az etkilidir çünkü saldırganlar genellikle kara listeyi atlamanın yollarını bulabilirler.
- Bağlamsal Kodlama: Çıktıyı, görüntüleneceği bağlama göre kodlayın (örneğin, HTML çıktısı için HTML kodlaması, JavaScript çıktısı için JavaScript kodlaması).
- Kütüphaneleri Kullanın: Girdi doğrulama ve temizleme için
validator.js(Node.js), DOMPurify (istemci tarafı) veya OWASP Java Encoder (sunucu tarafı Java) gibi mevcut kütüphanelerden yararlanın.
Örnek (İstemci Tarafı):
```javascript const userInput = document.getElementById('comment').value; const sanitizedInput = DOMPurify.sanitize(userInput); document.getElementById('commentDisplay').innerHTML = sanitizedInput; ```Örnek (Sunucu Tarafı - Node.js):
```javascript const validator = require('validator'); const email = req.body.email; if (!validator.isEmail(email)) { // Geçersiz e-posta adresini işle console.log('Geçersiz e-posta adresi'); } ```Çıktı Kodlama
Çıktı kodlama, karakterleri belirli bir bağlamda güvenli bir şekilde görüntülenebilecek bir biçime dönüştürme işlemidir. Bu, XSS saldırılarını önlemek için esastır.
En İyi Uygulamalar:
- HTML Kodlaması: HTML'de özel anlamı olan
<,>,&,"ve'gibi karakterleri kodlayın. - JavaScript Kodlaması: JavaScript'te özel anlamı olan
',",\ve/gibi karakterleri kodlayın. - URL Kodlaması: URL'lerde özel anlamı olan boşluklar,
/,?ve#gibi karakterleri kodlayın. - Şablon Motorlarını Kullanın: Handlebars, Mustache veya Thymeleaf gibi çıktı kodlamasını otomatik olarak yapan şablon motorlarını kullanın.
Örnek (Bir Şablon Motoru Kullanarak - Handlebars):
```html <p>Merhaba, {{name}}!</p> ```Handlebars, name değişkenini otomatik olarak kodlayarak XSS saldırılarını önler.
Kimlik Doğrulama ve Yetkilendirme
Güçlü kimlik doğrulama ve yetkilendirme mekanizmaları, hassas verileri korumak ve yetkisiz erişimi önlemek için esastır. Bu, kullanıcı kaydı, giriş ve oturum yönetimi süreçlerini güvence altına almayı içerir.
En İyi Uygulamalar:
- Güçlü Parola Politikaları: Minimum uzunluk, büyük ve küçük harflerin, rakamların ve sembollerin bir karışımını gerektiren güçlü parola politikaları uygulayın.
- Parola Özetleme (Hashing): Parolaları, her parola için benzersiz bir tuz (salt) ile bcrypt veya Argon2 gibi güçlü bir özetleme algoritması kullanarak özetleyin. Parolaları asla düz metin olarak saklamayın.
- Çok Faktörlü Kimlik Doğrulama (MFA): Ek bir güvenlik katmanı eklemek için MFA uygulayın. Yaygın MFA yöntemleri arasında SMS kodları, kimlik doğrulayıcı uygulamaları ve donanım anahtarları bulunur.
- Oturum Yönetimi: JavaScript'in oturum çerezlerine erişimini önlemek için HTTP-only çerezleri kullanmak ve uygun oturum sona erme süreleri belirlemek gibi güvenli oturum yönetimi teknikleri kullanın.
- Rol Tabanlı Erişim Kontrolü (RBAC): Kullanıcı rollerine göre kaynaklara erişimi kontrol etmek için RBAC uygulayın.
- OAuth 2.0 ve OpenID Connect: Üçüncü taraf hizmetlerle güvenli kimlik doğrulama ve yetkilendirme için bu protokolleri kullanın.
Örnek (Parola Özetleme - Node.js ile bcrypt):
```javascript const bcrypt = require('bcrypt'); async function hashPassword(password) { const saltRounds = 10; // Tuzlama turu sayısı const hashedPassword = await bcrypt.hash(password, saltRounds); return hashedPassword; } async function comparePassword(password, hashedPassword) { const match = await bcrypt.compare(password, hashedPassword); return match; } ```Güvenlik Başlıkları
HTTP güvenlik başlıkları, tarayıcıya belirli güvenlik politikalarını uygulaması talimatını vererek web uygulamalarının güvenliğini artırmak için bir mekanizma sağlar. Temel güvenlik başlıkları şunlardır:
- İçerik Güvenlik Politikası (CSP): Tarayıcının yüklemesine izin verilen kaynakları kontrol ederek XSS saldırılarını önler.
- HTTP Katı Taşıma Güvenliği (HSTS): Tarayıcıyı web sitesiyle tüm iletişim için HTTPS kullanmaya zorlar.
- X-Frame-Options: Web sitesinin bir çerçeveye gömülüp gömülemeyeceğini kontrol ederek tıklama korsanlığı saldırılarını önler.
- X-Content-Type-Options: Tarayıcıyı dosyaları beyan edilen içerik türlerine göre yorumlamaya zorlayarak MIME koklama saldırılarını önler.
- Referrer-Policy: İsteklerle ne kadar yönlendiren bilgisinin gönderileceğini kontrol eder.
Örnek (Güvenlik Başlıklarını Ayarlama - Node.js ile Express):
```javascript const express = require('express'); const helmet = require('helmet'); const app = express(); app.use(helmet()); // Önerilen bir dizi güvenlik başlığını uygular app.get('/', (req, res) => { res.send('Merhaba Dünya!'); }); app.listen(3000, () => { console.log('Sunucu 3000 numaralı bağlantı noktasında dinleniyor'); }); ```helmet ara yazılımını kullanmak, Express.js'de güvenlik başlıklarını ayarlama sürecini basitleştirir.
Bağımlılık Yönetimi
JavaScript projeleri genellikle çok sayıda üçüncü taraf kütüphaneye ve çerçeveye dayanır. Güvenliği ihlal edilmiş veya güncel olmayan kütüphaneler aracılığıyla güvenlik açıklarının ortaya çıkmasını önlemek için bu bağımlılıkları etkili bir şekilde yönetmek çok önemlidir.
En İyi Uygulamalar:
- Bir Paket Yöneticisi Kullanın: Bağımlılıkları yönetmek için npm veya yarn gibi paket yöneticilerini kullanın.
- Bağımlılıkları Güncel Tutun: Bilinen güvenlik açıklarını yamamak için bağımlılıkları düzenli olarak en son sürümlere güncelleyin.
- Güvenlik Açığı Taraması: Bilinen güvenlik açıkları için bağımlılıkları taramak için npm audit veya snyk gibi araçları kullanın.
- Alt Kaynak Bütünlüğü (SRI): Üçüncü taraf kaynakların tahrif edilmediğinden emin olmak için SRI kullanın.
- Gereksiz Bağımlılıklardan Kaçının: Yalnızca gerçekten ihtiyaç duyulan bağımlılıkları dahil edin.
Örnek (npm audit kullanarak):
```bash npm audit ```Bu komut, projenin bağımlılıklarını bilinen güvenlik açıkları için tarar ve bunları düzeltmek için öneriler sunar.
Güvenlik Testi
Güvenlik testi, geliştirme yaşam döngüsünün önemli bir parçasıdır. Saldırganlar tarafından istismar edilmeden önce güvenlik açıklarını belirlemeyi ve gidermeyi içerir. Temel güvenlik testi türleri şunlardır:
- Statik Analiz: Potansiyel güvenlik açıklarını belirlemek için kodu çalıştırmadan analiz etme. Güvenlikle ilgili eklentilere sahip ESLint gibi araçlar statik analiz için kullanılabilir.
- Dinamik Analiz: Güvenlik açıklarını belirlemek için uygulamayı çalışırken test etme. Bu, sızma testi ve fuzzing'i içerir.
- Sızma Testi: Uygulamadaki güvenlik açıklarını belirlemek için gerçek dünya saldırılarını simüle etme.
- Fuzzing: Güvenlik açıklarını belirlemek için uygulamaya geçersiz veya beklenmedik girdiler sağlama.
- Güvenlik Denetimleri: Güvenlik uzmanları tarafından uygulamanın güvenlik duruşunun kapsamlı incelemeleri.
Örnek (ESLint'i Güvenlik Eklentileriyle Kullanma):
ESLint'i ve güvenlikle ilgili eklentileri yükleyin:
```bash npm install eslint eslint-plugin-security --save-dev ```ESLint'i güvenlik eklentisini kullanacak şekilde yapılandırın:
```javascript // .eslintrc.js module.exports = { "plugins": [ "security" ], "rules": { "security/detect-possible-timing-attacks": "warn", "security/detect-eval-with-expression": "warn", // Gerektiğinde daha fazla kural ekleyin } }; ```Kodu analiz etmek için ESLint'i çalıştırın:
```bash npm run eslint . ```İzleme ve Günlük Kaydı
Sürekli izleme ve günlük kaydı, güvenlik olaylarını tespit etmek ve bunlara müdahale etmek için çok önemlidir. Bu, uygulama etkinliğini izlemeyi, şüpheli davranışları belirlemeyi ve potansiyel tehditler tespit edildiğinde uyarılar oluşturmayı içerir.
En İyi Uygulamalar:
- Merkezi Günlük Kaydı: Kolay analiz için günlükleri merkezi bir konumda saklayın.
- Her Şeyi Günlüğe Kaydedin: Kimlik doğrulama denemeleri, yetkilendirme kararları ve hata mesajları dahil olmak üzere ilgili tüm uygulama etkinliğini günlüğe kaydedin.
- Günlükleri İzleyin: Olağandışı giriş kalıpları, başarısız kimlik doğrulama denemeleri ve beklenmedik hatalar gibi şüpheli etkinlikler için günlükleri düzenli olarak izleyin.
- Uyarı: Potansiyel tehditler tespit edildiğinde güvenlik personelini bilgilendirmek için uyarılar yapılandırın.
- Olay Müdahale Planı: Güvenlik olaylarına müdahaleyi yönlendirmek için bir olay müdahale planı geliştirin.
Örnek Çerçeve Uygulamaları
Bir JavaScript güvenlik koruma çerçevesinin uygulanmasını kolaylaştırmaya yardımcı olabilecek birkaç güvenlik çerçevesi ve kütüphanesi vardır. İşte birkaç örnek:
- OWASP ZAP: Sızma testi için kullanılabilecek ücretsiz ve açık kaynaklı bir web uygulaması güvenlik tarayıcısı.
- Snyk: Açık kaynaklı kütüphanelerdeki ve konteyner imajlarındaki güvenlik açıklarını bulmak, düzeltmek ve önlemek için bir platform.
- Retire.js: Bilinen güvenlik açıklarına sahip JavaScript kütüphanelerinin kullanımını tespit etmek için bir tarayıcı uzantısı ve Node.js aracı.
- Helmet: HTTP güvenlik başlıklarını ayarlayan bir Node.js ara yazılımı.
- DOMPurify: HTML, MathML ve SVG için hızlı, DOM tabanlı bir XSS temizleyici.
Gerçek Dünya Örnekleri ve Vaka İncelemeleri
Gerçek dünya örneklerini ve vaka incelemelerini incelemek, güvenlik açıklarının nasıl istismar edildiği ve bunların nasıl önleneceği konusunda değerli bilgiler sağlayabilir. Geçmiş güvenlik ihlallerini analiz edin ve başkalarının hatalarından ders alın. Örneğin, güvenlik açıklarının potansiyel etkisini anlamak için Equifax veri ihlali ve Target veri ihlalinin ayrıntılarını araştırın.
Vaka İncelemesi: Bir Sosyal Medya Uygulamasında XSS'i Önleme
Bir sosyal medya uygulaması, kullanıcıların daha sonra diğer kullanıcılara gösterilen yorumlar göndermesine olanak tanır. XSS saldırılarını önlemek için uygulama aşağıdaki güvenlik önlemlerini uygular:
- Girdi Doğrulama: Uygulama, beklenen biçime ve uzunluğa uyduğundan emin olmak için tüm kullanıcı girdilerini doğrular.
- Çıktı Kodlama: Uygulama, kullanıcılara göstermeden önce tüm çıktıları HTML kodlaması kullanarak kodlar.
- İçerik Güvenlik Politikası (CSP): Uygulama, tarayıcının yüklemesine izin verilen kaynakları kısıtlamak için CSP'yi kullanır ve kötü niyetli komut dosyalarının yürütülmesini önler.
Vaka İncelemesi: Bir Çevrimiçi Bankacılık Uygulamasında CSRF'yi Önleme
Bir çevrimiçi bankacılık uygulaması, kullanıcıların hesaplar arasında para transferi yapmasına olanak tanır. CSRF saldırılarını önlemek için uygulama aşağıdaki güvenlik önlemlerini uygular:
- CSRF Jetonları: Uygulama, her kullanıcı oturumu için benzersiz bir CSRF jetonu oluşturur ve bunu tüm formlara ve isteklere dahil eder.
- SameSite Çerezleri: Uygulama, siteler arası istek sahteciliğini önlemek için SameSite çerezlerini kullanır.
- Çift Gönderim Çerezleri: AJAX istekleri için, uygulama çift gönderim çerezi modelini kullanır; burada rastgele bir değer bir çerez olarak ayarlanır ve ayrıca bir istek parametresi olarak dahil edilir. Sunucu, her iki değerin de eşleştiğini doğrular.
Sonuç
Sağlam bir JavaScript güvenlik altyapısı uygulamak, çok katmanlı bir yaklaşım gerektiren sürekli bir süreçtir. Yaygın güvenlik açıklarını anlayarak, güvenli kodlama uygulamalarını uygulayarak ve güvenlik çerçevelerinden ve kütüphanelerinden yararlanarak, güvenlik ihlali riskini önemli ölçüde azaltabilir ve uygulamalarınızı ve kullanıcılarınızı zarardan koruyabilirsiniz. Unutmayın ki güvenlik tek seferlik bir çözüm değil, sürekli bir taahhüttür. En son tehditler ve güvenlik açıkları hakkında bilgi sahibi olun ve güvenlik duruşunuzu sürekli olarak geliştirin.
Bu rehber, bir JavaScript güvenlik koruma çerçevesi uygulamasına dair kapsamlı bir genel bakış sunmaktadır. Bu rehberde özetlenen en iyi uygulamaları takip ederek, daha güvenli ve dayanıklı JavaScript uygulamaları oluşturabilirsiniz. Öğrenmeye ve güvende kalmaya devam edin! Daha fazla en iyi uygulama ve öğrenme için OWASP Javascript Hile Sayfası Serisini okuyun.