Selamun Aleyküm..
XSS Filtrelemek için 3 Tane Yöntemden Bahsettim.
Vuln:
Değişkenler ile , GET Metodu aracılığıyla inputlardan direk çekilmiş ve Yansıtılmış.
Bu da
adi="**********alert(’VULN’)</script>
soyadi="**********alert(’VULN’)</script>
XSS ye Yol Açar.
Fix 1:
--------------------
--------------------
htmlspecialchars fonksiyonu ile <,’,> gibi karakterleri kısıtlayarak Fixledik.
--------------------
Fix 2 :
--------------------
str_replace fonksiyonu ile tek tek isteğimiz doğrultusundaki karakterleri kısıtladık.
3 bölmeden oluşuyor.
1. Bölmeye Kısıtlamak istediğimiz karakter , kelime vs.
2. Bölümde dönüştürülecek şey.(Boş bırakarak boşa çeviriyoruz.)
3. Bölüme ise Değişkenimizi.
-----------------
Fix 3 :
------------
------------------
Burada İf ile kontrol Ediyoruz..
htmlentities ilede < , > gibi karakterlei ’<’ , ’>’ gibi karakterlere çevirir.(Tırnak İçine Alır)
ENT_QUOTES = Bu kod ise Tırnak İşaretlerini Filtreler..
XSS Filtrelemek için 3 Tane Yöntemden Bahsettim.
Vuln:
Kod:
<?PHP
$adi = $_GET["adi"];
$soyadi = $_GET["soyadi"];
echo $adi;
echo $soyadi;
?>
Değişkenler ile , GET Metodu aracılığıyla inputlardan direk çekilmiş ve Yansıtılmış.
Bu da
adi="**********alert(’VULN’)</script>
soyadi="**********alert(’VULN’)</script>
XSS ye Yol Açar.
Fix 1:
--------------------
Kod:
<?PHP
$adi = htmlspecialchars($_GET["adi"]);
$soyadi = htmlspecialchars($_GET["soyadi"]);
echo $adi;
echo $soyadi;
?>
htmlspecialchars fonksiyonu ile <,’,> gibi karakterleri kısıtlayarak Fixledik.
--------------------
Fix 2 :
Kod:
<?PHP
$adi = $_GET["adi"];
$soyadi = $_GET["soyadi"];
$adi = str_replace("’","",$adi);
$adi = str_replace("(","",$adi);
$adi = str_replace(")","",$adi);
$adi = str_replace(";","",$adi);
$adi = str_replace(":","",$adi);
$adi = str_replace("<","",$adi);
$soyadi = str_replace("’","",$soyadi);
$soyadi = str_replace("(","",$soyadi);
$soyadi = str_replace(")","",$soyadi);
$soyadi = str_replace(";","",$soyadi);
$soyadi = str_replace(":","",$soyadi);
$soyadi = str_replace("<","",$soyadi);
echo $adi;
echo $soyadi;
?>
--------------------
str_replace fonksiyonu ile tek tek isteğimiz doğrultusundaki karakterleri kısıtladık.
3 bölmeden oluşuyor.
1. Bölmeye Kısıtlamak istediğimiz karakter , kelime vs.
2. Bölümde dönüştürülecek şey.(Boş bırakarak boşa çeviriyoruz.)
3. Bölüme ise Değişkenimizi.
-----------------
Fix 3 :
Kod:
<?PHP
$adi = $_GET["adi"];
$soyadi = $_GET["soyadi"];
echo $adi;
echo $soyadi;
?>
------------
Kod:
<?php
if(isset($adi = $_GET[’adi’]));
if(isset($soyadi = $_GET[’soyadi’]));
echo htmlentities($_GET [’adi’], ENT_QUOTES);
echo htmlentities($_GET [’soyadi’], ENT_QUOTES);
?>
------------------
Burada İf ile kontrol Ediyoruz..
htmlentities ilede < , > gibi karakterlei ’<’ , ’>’ gibi karakterlere çevirir.(Tırnak İçine Alır)
ENT_QUOTES = Bu kod ise Tırnak İşaretlerini Filtreler..