Mövzu : XSS
Bölmə: Web Security
Tarix: 19-06-2014
İlk öncə XSS açığı olan skriptə baxaq :
Kod:
<form action="" method="POST">
<input type="text" name="a1"/></br>
<input type="submit" value="ok" />
<?php
if ($_POST){
$isim = trim(($_POST['a1']));
echo $a1;
}
?>
-Bu skriptdə , <script>Alert("pwnzz")</script> - yazdıqda , ekranda pəncərə açılır və orda pvnzzz - yazılır..
XSS əslində köhnə açıqdır.. Amma JavaScript bilən biri , sayta kifayət qədər ziyan vura bilər..
Bu açığı necə bağlamaq olar ? Bu açığı bağlamaq üçün , əsas üç operatordan istifadə olunur :
1. strip_tags() - HTML kodlarını "silir".
2. htmlspecialchars - HTML kodlarını nəzərə almır .. Olduğu kimi ekrana verir ...
3. htmlentities
Biz 1.htmlspecialchars və 2.strip_tags() - funksiaları ilə bağlayacağıq ..
Gələk açığı bağlamağa :
1) Strip_tags()
Kod:
<form action="" method="POST">
<input type="text" name="a1"/></br>
<input type="submit" value="ok" />
<?php
if ($_POST){
$isim = strp_tags(trim(($_POST['a1'])));
echo $a1;
}
?>
- <script>Alert("pwnzz")</script> - Kodunu yazdıqda , ekrana sadəcə Alert("pwnzz") - yazısı çıxır ..
Çünki , Strip_tags() - operatoru , <script></script> - i silib ...
2. Htmlspecialchars()
Kod:
<form action="" method="POST">
<input type="text" name="a1"/></br>
<input type="submit" value="ok" />
<?php
if ($_POST){
$isim = htmlspecialchars(trim(($_POST['a1'])));
echo $a1;
}
?>
- bu skriptdə , <script>Alert("pwnzz")</script> - yazdıqda , ekrana <script>Alert("pwnzz")</script> - çıxır..
Yəni elə bilki , textbox-da olan sözü ekrana verir ..
//suallraınız varsa , buyurun verin..