XSS (Cross Site Scripting) nedir? nasıl korunulur?

Mart 16th, 2009 No Comments   Posted in Bilgi GüvenliÄŸi

Merhabalar bu yazımda basitçe XSS ten bahsetmek istiyorum.Cross Site Scripting deniliyor o halde niye CSS değilde XSS ?     Cascading Style Sheets(Stil şablonları) ile karıştırılabilir diye CSS değilde XSS demeyi tercih etmiş amcalarımız.

Cross-site scripting (XSS) genellikle web uygulamalarında bulunan bir güvenlik açığı türüdür.
XSS  “Saldırganın, HTML kodlarının arasına istemci tabanlı kod gömmesiyle, kullanıcının tarayıcısında istediÄŸi istemci tabanlı kodu çalıştırması“  olarak tanımlanmış wikipedia.[1]

Saldırgan gönderdiği veri içerisine zararlı html kodları – ki genelde javascript kodlarıdır – eklemesi ve bu eklenen zararlı kodların yüklenerek çalışabildiği sayfanın üçüncü bir şahsın ziyaretinin ardından, iyi niyetli kullanıcı ile ilgili önemli bilgilerin, saldırıda bulunan kişiye ulaşması şeklinde gelişen bir senaryoya sahip xss.[2]

XSS ile giriş kontrollerini ve aynı mantıktaki güvenlik kontrollerini atlatabiliriz.(tabi bununla sınırlı değil).

Peki sitemizde XSS olduğunu nasıl anlıyacağız? Bunun için piyasada bir çok araç mevcut.Daha önceki yazımda belirttiğim ve firefox ile birlikte kullanılabilen XSS me aracını kullanabilirsiniz.

Örnekler:
test1.php dosyasını şöyle düzenleyelim.

<?php

$hatamesaji = $_GET['hata'];

print $hatamesaji ;
?>

Bu şekilde ayıklanmadan yapılan bir kodlamanın sonucu
test1.php?hata=<script>alert('Sorun VAR');</script>

Korunma?

Özel karakterleri filtrelememiz gerekiyor;

<?php
$hatamesaji = $_GET['hata'];
print htmlspecialchars($hatamesaji );
?>

*[1]-http://en.wikipedia.org/wiki/Cross-site_scripting
*[2]-http://www.2nci.com/lab/detail/php-xss-guvenlik-ve-html-purifier

XSS Me , Sql İnject Me sitenizi test edin.

Bu firefox eklentileriyle sitenizi sql injection ve xss e karsi test edebilirsiniz.
More »