4 Ağustos 2008 Pazartesi

strip_tags() - allowable tags ve güvenlik problemleri

strip_tags() fonksiyonu, izin verilen etiketler olarak bir parametre alıyor. bu parametrede, izin verilen HTML etiketleri kullaniliyor ve isleme sokuldugunda yok edilmiyor.

XSS saldirilarina karsi, bir cok yerde strip_tags() fonksiyonunun onerildigini gorebilirsiniz. Fakat, allowable tags kismina sadece etiketini eklemeniz bile guvenlik acisindan ciddi problemler dogurabiliyor. ( programcilar, zararsiz olarak gordukleri bu etiketleri kullanabiliyorlar bu parametrede.)

Ornegin, BB-CODE'lardan uzak duralim diye strip_tags() icinde A etiketine izin verdik diyelim.

Ilk olarak textarea kismina yazin, sonuc hatasiz cikacak.Evet, filtrelenmis.

İkinci seferde
y gibi bir sey yazin, a etiketi allowed tags icinde oldugu icin duzgun bir sekilde calisacaktir.

Fakat, sorun su ki, yetenekli bir saldirgan icin a etiketi bile yeterli olacaktir.Zira, a etiketi icindeki "onclick" eventi javascript calistirmak icin yeterli.Bu da cookie calma gibi ciddi sorunlara yol acabilir.

Ornegin, yukardaki basit betigi gecen bir saldiri deseni:

Kod:

ya da cookie (cerez) calalim:

Kod:

Bu tip sorunlarla karsilasmamak icin, bb-code teknigini kullanabilirsiniz.

Hiç yorum yok: