XSS Nedir?
Cross-Site Scripting (XSS), bir web uygulamasındaki güvenlik açığından yararlanan kötü niyetli bir saldırıdır. Hacker, web sayfasındaki form alanlarına zararlı JavaScript kodları yerleştirerek, diğer kullanıcıların tarayıcılarında kötü niyetli işlemler gerçekleştirebilir. Bu tür saldırılar, kullanıcının bilgilerini çalmak, oturum açma bilgilerini ele geçirmek ya da kötü amaçlı yazılımlar yüklemek için kullanılabilir.
# 1. Stored XSS
Stored XSS, saldırganın zararlı JavaScript kodunu, web sunucusuna yerleştirdiği bir form veya giriş alanı üzerinden kaydettiği bir saldırı türüdür. Bu kod daha sonra başka bir kullanıcı tarafından ziyaret edilen sayfada çalıştırılır. Yani, saldırı kalıcıdır.
Reflected XSS, zararlı kodun, kullanıcı tarafından sağlanan bir girişle hemen yansıdığı bir saldırıdır. Örneğin, kullanıcı bir URL’ye zararlı kod içeren bir bağlantı tıklarsa, bu kod tarayıcıda çalışabilir.
# 3. DOM-based XSS
DOM-based XSS, saldırganın, tarayıcıdaki Document Object Model (DOM) üzerinde yaptığı değişikliklerle gerçekleştirdiği bir saldırıdır. Bu saldırı türü, sunucudan bağımsız olarak, yalnızca istemci tarafında meydana gelir.
XSS saldırılarından korunmak için birkaç basit ancak etkili yöntem bulunmaktadır. Gelin, bunları adım adım inceleyelim:
# 1. Girdi Doğrulama ve Filtreleme
XSS saldırılarının temelinde kötü niyetli kullanıcıların, sayfaya zararlı JavaScript kodları yerleştirmesidir. Bu nedenle, her zaman kullanıcıdan alınan girdileri doğrulamak önemlidir. Kullanıcıların girdiği verileri beyaz liste (whitelist) yöntemiyle filtreleyerek yalnızca güvenli içeriklerin kabul edilmesini sağlayabilirsiniz.
```html
if (input.contains("