emirhanHCL 1
emirhanHCL
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
farkmt2official 1
farkmt2official
mannaxxx 1
mannaxxx
Bvural41 1
Bvural41
Agora Metin2 1
Agora Metin2
Hikaye Ekle

UI Post edilen içerikte script ve zararlı kodları temizleme

  • Konuyu başlatan Konuyu başlatan Arcface
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 191
Merhabalar,

Çoğu kişi genelde editörleri yönetim panelinde yaptığı için bu durumu önemsemez ama kullanıcıların içerik girdiği forum,blog sosyal medya gibi yerlerde bu tür filtrelemelere ihtiyaç duyulur.


Ne gibi zararı olabilir ki gireceği kodun diyebilirsiniz bir script yerleştirip çerez bilgilerini çalabilir ,gizli reklam yerleştirebilir, yönlendirme kodu koyabilir hiç olmadı istemediğiniz kod betiklerini koyabilir hiç olmadı html'deki kod hiyerarşisini bozabilir bunların hiç biri isteyeceğiniz şeyler değil kullanıcıdan sen sadece renklendirme yapsın tablo eklesin istersin ama o zararlı kod girdirmeye çalışır bu gibi durumlar için bir filtreleme fonksiyonu gereklidir.

bu benim kendi filtreleme fonksiyonum yıllardır kullanıyorum işimi de fazlasıyla görüyor


PHP:
<?php


function bug_crusher($text,$filter = null){

  if (!$filter) {

    $filter = '<p><a><span><strong><u><img><div><code><b><i><h1><h2><h3><h4><h5><h6><h7><em><s><blockquote><iframe><embed><pre><address><kbd><small><ul><li><ol><sub><sup><table><tr><td><th><tbody><thead>';

  }

  $text = strip_tags(htmlspecialchars_decode(stripcslashes($text)), $filter);

  $text = preg_replace('/([onON]+)([a-zA-Z]+)(\s+|)=(\s+|)(["\']+)(.*?)(["\']+)/','', $text);

  return htmlspecialchars(trim($text));

}





bu fonksiyonda eğer bir değer tanımlamaz iseniz şu etiketlere izin veriyorum.
Kod:
"<p><a><span><strong><u><img><div><code><b><i><h1><h2><h3><h4><h5><h6><h7><em><s><blockquote><iframe><embed><pre><address><kbd><small><ul><li><ol><sub><sup><table><tr><td><th><tbody><thead>



Ama olur da sadece başlık boyuları girebilirsin ve img ekleyebilsin derseniz kullanırken 2 inci parametreyi "<h1><h2><h3><img>" olarak gönderirseniz sadece bu kodlara izin verecek ve diğerlerini silecektir.



Bu ilk kısım tagları ve scripts,styles temizler ikinci kısım ise izin verdiğiniz kodlara onclick atayabilir onfocus atayabilir bunları temizliyor kısaca size tertemiz bir kod çıktısı veriyor ve gönül rahatlığıyla içerikerinizi kullanıcılara yazdırabiliyorsunuz.



Bir kaç kullanım örneği göstereyim.

PHP:
<?php



function code_clear($text,$filter = null){

  if (!$filter) {

    $filter = '<p><a><span><strong><u><img><div><code><b><i><h1><h2><h3><h4><h5><h6><h7><em><s><blockquote><iframe><embed><pre><address><kbd><small><ul><li><ol><sub><sup><table><tr><td><th><tbody><thead>';

  }

  $text = strip_tags(htmlspecialchars_decode(stripcslashes($text)), $filter);

  $text = preg_replace('/([onON]+)([a-zA-Z]+)(\s+|)=(\s+|)(["\']+)(.*?)(["\']+)/','', $text);

  return htmlspecialchars(trim($text));

}





$kullanicidangelen = "<script>alert('nasıl verdirdim uyarıyı ama");</script> <b>Lorem</b> <i onclick='alert(\'Text içi alert\');'>İpsum</i> Dolar Felan Filan";



// Bu değeri fonksiyondan geçirelim



echo code_clear($kullanicidangelen);

/* Çıktı <b>Lorem</b> <i>İpsum</i> Dolar Felan Filan olacaktır. */
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst