Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Gelişmiş Text Alanından Gelen Veri Güvenliği

Öncelikle herkese merhaba,

Bir projemde zengin text alanı kullanmaktayım (http://nicedit.com/demos.php) burada aklıma takılan bir takım problemler.

Sonuç itibari ile burada oluşan html taglarını veri tabanına kaydettireceğim bu verilerin güvenliğini SQL veya PHP kodu içermemelerini nasıl sağlayabilirim acaba?

Bu konu hakkında çalışmalarınız veya bildiğiniz kaynaklar varsa önerirseniz çok sevinirim.

Sorum tamamen injection tarzı saldırılardan korunma ve güvenlik içeriklidir.
İyi çalışmalar.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • Kesali adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    208 cevap - 2 soru
    Php içinde 3 temel fonksiyon var. htmlentities, htmlspecialchars ve strip_tags.
    htmlentities ve htmlspecialchars formdan gelen verileri databaseine zarar vermeden kaydeder yalnız. Bu işlemi yaparken özel html karakterlerini kodlar. Yani bir nevi kodları direk sitene çağırır ama işlevsellik vermez.

    strip_tags ise formdan gelen html taglarını çıkarır. Ama fonksiyona ayrıca çıkarılmasını istemediğin tagları belirtirsen o taglar haric tutulur.

    Aşağıdaki örnekteki p ve a tagları hariç diğer tağlar text değişkeninden silinir.

    <?php
    echo strip_tags($text, '<p><a>');
    ?>
    
    • llorca adlı üyenin fotoğrafı llorca
      Öncelikle çok teşekkür ederim Kesali,
      Strip_tags() ın bu özelliğini biliyordum fakat tek başına yeterli olur mu? Sorusunun cevabını almam lazım.

      Böyle bir text alanı için strip_tags güvenlik açısından yeterli olacak mıdır sence?
      11 yıl önce yazılmış 11 yıl önce güncellenmiş
    • Kesali adlı üyenin fotoğrafı Kesali
      Verileri veri tabanına kaydetmeden önce escape ediyorsanız. mysql_real_escape_string veya pdo/mysqli prepared statment ile zaten sql ile bir sıkıntı yaşamazsınız. PHP kodları veri tabanından çektiğiniz halde zaten çalışmayacaktır (php eval() foksiyonunu kullanmıyorsanız tabi.)

      Diğer sıkıntılı kısım xss denen sitenin yapısnı bozacak yada sitenin içine eklenecek javascript kodlarını önlemek.

      Senin için en mantıklı çözüm gelen veriyi önce strip_tags ile zararlı taglardan arındırıp Sonra veri tabanına kaydetmeden escape etmen sana yeterli güvenliği vede editörünün özelliklerinden faydalanmanı sağlar.

      Ayrıca bu tür text editörleri özellikle kopyala yapıştır yapınca çok fazla gereksiz tag ekliyor.

      Bir nevi kod yapınıda düzenlemiş olursun.
      11 yıl önce yazılmış
    • llorca adlı üyenin fotoğrafı llorca
      Text editörlerin gereksiz kod ekledikleri konusunda kesinlikle haklısın.

      Bu durumda senin dediğin gibi yapıp sistemi internetten indirdiğim XSS kodları ile test etmek sanırım en uygun yöntem olacaktır benim için.

      Gösterdiğin ilgi ve ayırdığın zaman için teşekkür ederim Kesali.
      11 yıl önce yazılmış
    • Kesali adlı üyenin fotoğrafı Kesali
      Rica ederim yardımcı olabildiysem ne mutlu bana.
      11 yıl önce yazılmış

Cevaplar

Hiç cevap bulunamadı.