• 17-03-2009, 21:25:22
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba arkadaşlar,

    Kendime ait bir portal yapıyorum ve bu portalda Phpfusion tabanını kullanıyorum üyelerin makale gönderebilmesi için,Tiny mce editörünü kullanıyorum ve üyeler gönderebiliyorlar.

    Tiny mce sayfaları html kullanarak hazırladığı için ve Phpfusionda güvenlik nedeniyle html önlemi almış yani html parametreleri çalışmıyor. Mesela,

    <center> DENEME </center> yazıldığı zaman aşağıdaki şekilde oluşuyor

    Alıntı
    &lt;br/&gt;
    &lt;center&gt;
    Deneme
    &lt;/center&gt ;
    Bu html güvenliğini nasıl kapatabilirim bir bilgisi olan var mı?

    Onay sistemi ile yollanacağı için güvenlik önemli değil.

    Hepinize iyi çalışmalar dilerim.
  • 17-03-2009, 21:30:29
    #2
    htmlspecialchars veya htmlentities
    fonksiyonu uygulaniyordur
  • 17-03-2009, 22:26:05
    #3
    Eposta Aktivasyonu Gerekmekte
    PHP versiyonun kesinlikle 5.0+ ise sadece
    html_entity_decode($string);
    kullanman yeterli. Değilse veya emin değilsen veya alıyım ilerde lazım olur diyorsan aşağıdaki fonksiyon;
    function unhtmlentities($string = '') {
        $php_version = @phpversion();
        if ($php_version != '' && version_compare($php_version, '4.3.0', '==')) {
          $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
          $string = preg_replace('~&#([0-9]+);~e', 'chr("\\1")', $string);
          $trans_tbl = get_html_translation_table(HTML_ENTITIES);
          $trans_tbl = array_flip($trans_tbl);
          return strtr($string, $trans_tbl);
        } else
          return html_entity_decode($string);
      }
    Kullanımı:
    echo unhtmlentities('&lt;br/&gt;&lt;center&gt;Deneme&lt;/center&gt;');
  • 17-03-2009, 22:43:45
    #4
    taylanaktepe adlı üyeden alıntı: mesajı görüntüle
    PHP versiyonun kesinlikle 5.0+ ise sadece
    html_entity_decode($string);
    kullanman yeterli. Değilse veya emin değilsen veya alıyım ilerde lazım olur diyorsan aşağıdaki fonksiyon;
    function unhtmlentities($string = '') {
        $php_version = @phpversion();
        if ($php_version != '' && version_compare($php_version, '4.3.0', '==')) {
          $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
          $string = preg_replace('~&#([0-9]+);~e', 'chr("\\1")', $string);
          $trans_tbl = get_html_translation_table(HTML_ENTITIES);
          $trans_tbl = array_flip($trans_tbl);
          return strtr($string, $trans_tbl);
        } else
          return html_entity_decode($string);
      }
    Kullanımı:
    echo unhtmlentities('&lt;br/&gt;&lt;center&gt;Deneme&lt;/center&gt;');

    Teşekkürler, tek tek tanımlayacakmıyım html kodlarını ?
  • 17-03-2009, 23:08:51
    #5
    Eposta Aktivasyonu Gerekmekte
    $string = 'yazının tamamı'
    veya veritabanından;
    $string = $row[yazi_metni] // [yazi_basligi], [yazi_ozet] her ne ise?

    HTML etiketlerini tanımlamana gerek yok ancak, boşluk bulunan (enter, tab vs) yazılar için denemedim, o yüzden her ihtimale karşı fazla boşlukları al.
    $string =  preg_replace('/[\s\n\t\r\]+/i', ' ', $string);
  • 17-03-2009, 23:18:30
    #6
    açık yaratabiLir ama iyi düşünün
  • 17-03-2009, 23:25:00
    #7
    Eposta Aktivasyonu Gerekmekte
    YuqseLX adlı üyeden alıntı: mesajı görüntüle
    açık yaratabiLir ama iyi düşünün
    orası öyle.
    Güvenlik için inputFilter.class'ı kullanabilirsin. Ücretsizdir, biraz uğraştırır...
  • 17-03-2009, 23:29:33
    #8
    Ben biraz araştırdım,

    PHP: htmlentities - Manual Bu sanırım tam aradığım şey bunu phpfusion'a uygulamaya çalışacağım. Ayrıca site onay sistemi ile çalışacak ve çok az kişi bu siteden yararlanabilecek bu nedenle hack ile kimse uğraşmaz yani.

    PHP: htmlentities - Manual bunu nasıl uyarlayabilirim bilgisi olan var mı?
  • 17-03-2009, 23:49:53
    #9
    Eposta Aktivasyonu Gerekmekte
    yelhosting adlı üyeden alıntı: mesajı görüntüle
    Ben biraz araştırdım,
    PHP: htmlentities - Manual Bu sanırım tam aradığım şey bunu phpfusion'a uygulamaya çalışacağım. Ayrıca site onay sistemi ile çalışacak ve çok az kişi bu siteden yararlanabilecek bu nedenle hack ile kimse uğraşmaz yani.
    PHP: htmlentities - Manual bunu nasıl uyarlayabilirim bilgisi olan var mı?
    verdiğim işe yarar hale getirilmişi.