Güvenli Html Oluşturma.
|
#3071 |
|
KaanUser is:
Posts: 2277
Meslek: Serbest
Age: 29
|
Güvenli Html Oluşturma. Aşagıdaki kodlar istediğinizi alarak sistemize uygulayabilirsiniz. Bu Kodlar XSS ve benzeri girişimleri önlemek hazırlanmıştır. İndir: http://seditio-eklenti.com/datas.....2html.rar [spoiler=Göster] PHP-F: <? function guvenliHtml ($metin) { global $baslangic; $konumK = 0; # < (Kucuktur) karakterinin goruldugu son konum $konumB = 0; # > (Buyuktur) karakterinin goruldugu son konum $tag_mi = False; # tag icerisinde miyiz? $ozellikSablon = ''; # ozellik=deger formatindaki aramalar icin kullanilacak global $tagTablosu = array(); # tag bilgilerinin yer alacagi global $ozellikTablosu = array(); # ozellik (attribute) bilgilerinin yer alacagi global $degerTablosu = array(); # deger (value) bilgilerinin yer alacagi global # global degiskenlerin degerlerini set et guvenliGlobal(); # metni islemeden once yapilan on duzeltme islemi $metin = onDuzeltme($metin); $i = 0; $buffer = ''; $konumK = strpos($metin, '<', $i); # < karakterinin rastlandigi ilk konum $konumB = strpos($metin, '>', $i); # > karakterinin rastlandigi ilk konum # metin icindeki tag'lari tara while (True) { # eger < karakterine daha once rastlandiysa # veya < karakteri bulundu ama > karakteri bulunamadiysa if (($konumK !== False && $konumK < $konumB) || ($konumK !== False && $konumB === False)) { #tag icerisindeysek if ($tag_mi) { # tag icinde < olamayacagi icin tag sandigimiz kismin # basindaki < karakterini < ifadesine cevir $buffer .= '<' . substr($metin, $i, $konumK - $i); # tag icerisinde degilsek } else { # $buffer .= substr($metin, $i, $konumK - $i); } $i = $konumK + 1; $konumK = strpos($metin, '<', $i); # tag baslat $tag_mi = True; # eger > karakterine daha once rastlandiysa # veya > karakteri bulundu ama < karakteri bulunamadiysa } elseif (($konumB !== false && $konumK > $konumB) || ($konumK === False && $konumB !== False)) { # tag icerisindeysek if ($tag_mi) { # duzeltilmis tag'i ekle $buffer .= guvenliTag(substr($metin, $i, $konumB - $i)); # tag'i kapat $tag_mi = False; # tag icerisinde degilsek } else { # buraya kodar olan kismi al # ve > karakterini > ifadesine cevir $buffer .= substr($metin, $i, $konumB - $i) . '>'; } $i = $konumB +1; $konumB = strpos($metin, '>', $i); # eger < veya > karakterine rastlanmadiysa } else { # tag icerisindeysek if ($tag_mi) { # son rastlanan < karakterini < ifadesine cevir # ve metnin devamini buffer'a ekle $buffer .= '<' . substr($metin, $i); } else { # son kalinan konumdan itibaren metnin devamini buffer'a ekle $buffer .= substr($metin, $i); } # artik tag kalmadigina gore donguden cik break; } } return $buffer; } # -------------------------------------------------------------------------------------------------- function onDuzeltme($metin) { $degisiklikOncesi = ''; # degistirilmesi gereken bolum oldugu surece devam et while ($degisiklikOncesi != $metin) { $degisiklikOncesi = $metin; # &#xx formatinda yazilmis bazi karakterler, ASCII karsiliklarina cevriliyor # bazi tag'lar ve icerikleri atiliyor $metin = preg_replace('/<!--.*?-->/si', '', $metin); $metin = preg_replace('/<head[>\s]+.*?<\/head>/si', '', $metin); $metin = preg_replace('/<script[>\s]+.*?<\/script>/si', '', $metin); $metin = preg_replace('/<applet[>\s]+.*?<\/applet>/si', '', $metin); $metin = preg_replace('/<object[>\s]+.*?<\/object>/si', '', $metin); $metin = preg_replace('/<frameset[>\s]+.*?<\/frameset>/si', '', $metin); $metin = preg_replace('/<iframe[>\s]+.*?<\/iframe>/si', '', $metin); $metin = preg_replace('/<title[>\s]+.*?<\/title>/si', '', $metin); $metin = preg_replace('/<style[>\s]+.*?<\/style>/si', '', $metin); $metin = preg_replace('/(�*38;)|(�*38(?![0-9A-F]))|(�*26;)|(�*26(?![0-9A-F]))/i', '&', $metin); $metin = preg_replace('/(�*35;)|(�*35(?![0-9A-F]))|(�*23;)|(�*23(?![0-9A-F]))/i', '#', $metin); $metin = preg_replace('/(�*34;)|(�*34(?![0-9A-F]))|(�*22;)|(�*22(?![0-9A-F]))/i', '"', $metin); $metin = preg_replace('/(�*39;)|(�*39(?![0-9A-F]))|(�*27;)|(�*27(?![0-9A-F]))/i', '\'', $metin); $metin = preg_replace('/(�*60;)|(�*60(?![0-9A-F]))|(�*3C;)|(�*3C(?![0-9A-F]))/i', '<', $metin); $metin = preg_replace('/(�*62;)|(�*62(?![0-9A-F]))|(�*3E;)|(�*3E(?![0-9A-F]))/i', '>', $metin); $metin = preg_replace('/(�*58;)|(�*58(?![0-9A-F]))|(�*3A;)|(�*3A(?![0-9A-F]))/i', ':', $metin); $metin = preg_replace('/(�*47;)|(�*47(?![0-9A-F]))|(�*2F;)|(�*2F(?![0-9A-F]))/i', '/', $metin); $metin = preg_replace('/(�*61;)|(�*61(?![0-9A-F]))|(�*3D;)|(�*3D(?![0-9A-F]))/i', '=', $metin); #$metin = preg_replace('/(�*63;)|(�*63(?![0-9A-F]))|(�*3F;)|(�*3F(?![0-9A-F]))/i', '?', $metin); #$metin = preg_replace('/(�*37;)|(�*37(?![0-9A-F]))|(�*25;)|(�*25(?![0-9A-F]))/i', '%', $metin); #$metin = preg_replace('/(�*46;)|(�*46(?![0-9A-F]))|(�*2E;)|(�*2E(?![0-9A-F]))/i', '.', $metin); } return $metin; } # -------------------------------------------------------------------------------------------------- function guvenliTag ($metin) { global $tagTablosu; $slash = False; # son karakter / ise if (preg_match('/\s\/$/', $metin)) { $metin = substr($metin, 0, strlen($metin)-1); $slash = True; } if (preg_match('/ˆ(\/?)([ˆ\s]*)\s*$/i', $metin, $grup) # <tag> veya </tag> veya <tag /> formatindaysa && !($grup[1] && $slash) # ayni anda </ ve /> yoksa && array_key_exists(strtolower($grup[2]), $tagTablosu)) { # tag, $tagTablosu'nda varsa # 1. benzerlik, varsa bastaki / karakterini # 2. benzerlik, tag'i verir # <tag /> formatindaysa if ($slash) { $metin = '<' . $grup[2] . ' />'; # <tag> veya </tag> formatindaysa } else { $metin = '<' . $grup[1] . $grup[2] . '>'; } return $metin; } elseif (preg_match('/([ˆ\s]+)\s*(.*)$/si', $metin, $grup) # <tag ozellik1="deger1" ... ozellikN="degerN"> formatindaysa && array_key_exists(strtolower($grup[1]), $tagTablosu)) { # tag, $tagTablosu'nda varsa # 1. benzerlik, tag'i # 2. benzerlik, ozellikler listesini verir $metin = '<' . $grup[1]; $metin .= guvenliOzellikler($grup[2], $tagTablosu[strtolower($grup[1])]); if ($slash) { $metin .= ' />'; } else { $metin .= '>'; } return $metin; } # tag gecersiz. tag yerine 1 bosluk dondur # '' dondurmeyin, yoksa guvenlik acigi olusur return ' '; } # -------------------------------------------------------------------------------------------------- function guvenliOzellikler ($ozellikler, $izin_verilenler) { global $ozellikSablon, $ozellikTablosu, $degerTablosu; $temp_ozellikler = ''; # ozellik veya ozellik=deger formatina rastlandigi surece devam et while (preg_match($ozellikSablon, $ozellikler,$grup)) { # 1. benzerlik, ozelligi... # 2. 3. veya 4. benzerlik, degeri... # 5. benzerlik, geri kalan ozellikler listesini verir $ozellikler = $grup[5]; # bu ozellik, bu tag icin izin verilen ozellikler listesindeyse... # bu ozellik, HTML standartlarina uygun ozellikler listesindeyse... if (in_array(strtolower($grup[1]), $izin_verilenler) && array_key_exists(strtolower($grup[1]), $ozellikTablosu)) { # bu ozelligin deger almasi gerekiyorsa if ($ozellikTablosu[strtolower($grup[1])]) { # degerin sablona uyup uymadigini kontrol et preg_match($degerTablosu[$ozellikTablosu[strtolower($grup[1])]][0], $grup[2]|$grup[3]|$grup[4], $grup2); # sablona uygun deger bulunduysa... # ve yasaklilar sablonuna uyulmuyorsa... if ($grup2[1] && !preg_match($degerTablosu[$ozellikTablosu[strtolower($grup[1])]][1], $grup[2]|$grup[3]|$grup[4])) { # deger icinde " karakteri olma ihtimali varsa if ($grup[3]) { # ozellik='deger' formatinda kaydet $temp_ozellikler .= ' ' . $grup[1] . '=\'' . $grup2[1] .'\''; # deger icinde " karakteri olma ihtimali yoksa } else { # ozellik="deger" formatinda kaydet $temp_ozellikler .= ' ' . $grup[1] . '="' . $grup2[1] .'"'; } } # bu ozelligin, deger almamasi gerekiyorsa... # ve deger verilmeye de kalkilmadiysa... } elseif (!($grup[2] || $grup[3] || $grup[4])) { # ozellik formatinda kaydet ( ornegin: disabled ) $temp_ozellikler .= ' ' . $grup[1]; } } } return $temp_ozellikler; } # -------------------------------------------------------------------------------------------------- function guvenliGlobal () { global $tagTablosu; global $ozellikSablon, $ozellikTablosu, $degerTablosu; # izin verilen tag'larin listesi # her tag icin izin verilen ozellikler, array icinde belirtilmelidir $tagTablosu = array ( 'a' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'shape', 'coords', 'target', 'tabindex', 'accesskey', 'name', 'href', 'hreflang', 'type', 'rel', 'rev', 'charset'), 'abbr' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'acronym' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'address' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'area' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'name', 'alt', 'href', 'target', 'tabindex', 'accesskey', 'shape', 'coords', 'usemap', 'nohref'), 'b' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'bdo' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'big' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'blockquote' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'cite'), 'br' => array('id', 'class', 'title', 'style', 'clear'), 'button' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'name', 'value', 'type', 'accesskey', 'tabindex'), 'caption' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'), 'center' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'), 'cite' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'code' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'col' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'span', 'width', 'char', 'charoff', 'valign'), 'colgroup' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'span', 'width', 'char', 'charoff', 'valign'), 'dd' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'del' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'cite', 'datetime'), 'dfn' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'div' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'), 'dl' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'dt' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'em' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'fieldset' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'accesskey'), 'font' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'size', 'color', 'face'), 'h1' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'), 'h2' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'), 'h3' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'), 'h4' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'), 'h5' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'), 'h6' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'), 'hr' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'size', 'width', 'noshade'), 'i' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'img' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'src', 'longdesc', 'name', 'ismap', 'usemap', 'width', 'height', 'border', 'hspace', 'vspace'), 'input' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'alt', 'accept', 'readonly', 'disabled', 'tabindex', 'accesskey', 'usemap', 'ismap', 'type', 'name', 'value', 'size', 'maxlength', 'checked', 'src'), 'ins' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'cite', 'datetime'), 'isindex' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'prompt'), 'kdb' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'label' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'accesskey', 'for'), 'legend' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'accesskey'), 'li' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'type', 'start', 'value', 'compact'), 'map' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'name', 'alt', 'href', 'target', 'tabindex', 'accesskey', 'shape', 'coords', 'usemap', 'nohref'), 'noframes' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'noscript' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'ol' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'type', 'start', 'value', 'compact'), 'optgroup' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'disabled', 'tabindex', 'name', 'size', 'multiple', 'label'), 'option' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'disabled', 'tabindex', 'name', 'size', 'multiple', 'label'), 'p' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'), 'pre' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'width'), 'q' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'cite'), 's' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'samp' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'select' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'name', 'size', 'multiple', 'disabled', 'tabindex'), 'small' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'span' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'), 'strike' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'strong' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'sub' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'sup' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'table' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'summary', 'width', 'bgcolor', 'frame', 'rules', 'border', 'cellspacing', 'cellpadding'), 'tbody' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'char', 'charoff', 'valign'), 'td' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'bgcolor', 'align', 'char', 'charoff', 'valign', 'headers', 'scope', 'abbr', 'axis', 'rowspan', 'colspan', 'nowrap', 'width', 'height'), 'textarea' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'name', 'rows', 'cols', 'readonly', 'disabled', 'tabindex', 'accesskey'), 'tfoot' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'char', 'charoff', 'valign'), 'th' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'bgcolor', 'align', 'char', 'charoff', 'valign', 'headers', 'scope', 'abbr', 'axis', 'rowspan', 'colspan', 'nowrap', 'width', 'height'), 'thead' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'char', 'charoff', 'valign'), 'tr' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'bgcolor', 'align', 'char', 'charoff', 'valign'), 'tt' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'u' => array('id', 'class', 'title', 'style', 'dir', 'lan'), 'ul' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'type', 'start', 'value', 'compact'), 'var' => array('id', 'class', 'title', 'style', 'dir', 'lan'), ); # ozelliklerin listesi ve degerlerinin sablon kodlari # eger ozellik, deger almiyor, sadece set edilebiliyorsa, Null yazilacak $ozellikTablosu = array ( 'abbr' => 'TEXT', 'accept' => 'CONTENTTYPES', 'accesskey' => 'CHARACTER', 'align' => 'CUSTOM_ALIGN', 'alt' => 'TEXT', 'axis' => 'CDATA', 'bgcolor' => 'COLOR', 'border' => 'PIXELS', 'cellpadding' => 'LENGTH', 'cellspacing' => 'LENGTH', 'char' => 'CHARACTER', 'charoff' => 'LENGTH', 'charset' => 'CHARACTER', 'checked' => Null, 'cite' => 'URI', 'class' => 'CDATA', 'clear' => 'CUSTOM_CLEAR', 'color' => 'COLOR', 'cols' => 'NUMBER', 'colspan' => 'NUMBER', 'compact' => Null, 'coords' => 'COORDS', 'datetime' => 'DATETIME', 'dir' => 'CUSTOM_DIR', 'disabled' => Null, 'face' => 'CDATA', 'for' => 'IDREF', 'frame' => 'TFRAME', 'headers' => 'IDREFS', 'height' => 'LENGTH', 'href' => 'URI', 'hreflang' => 'LANGUAGECODE', 'hspace' => 'PIXELS', 'id' => 'ID', 'ismap' => Null, 'label' => 'TEXT', 'lan' => 'LANGUAGECODE', 'longdesc' => 'URI', 'maxlength' => 'NUMBER', 'multiple' => Null, 'name' => 'CDATA', 'nohref' => Null, 'nohshade' => Null, 'nowrap' => Null, 'prompt' => 'TEXT', 'readonly' => Null, 'rel' => 'LINKTYPES', 'rev' => 'LINKTYPES', 'rows' => 'NUMBER', 'rowspan' => 'NUMBER', 'rules' => 'TRULES', 'scope' => 'SCOPE', 'shape' => 'SHAPE', 'size' => 'NUMBER', 'span' => 'NUMBER', 'src' => 'URI', # sunucu disindan resim gosterilmesi istenmiyorsa 'YEREL_URI' olacak 'start' => 'NUMBER', 'style' => 'STYLESHEET', 'summary' => 'TEXT', 'tabindex' => 'NUMBER', 'target' => 'CDATA', 'title' => 'TEXT', 'type' => 'CUSTOM_TYPE', 'usemap' => 'URI', 'valign' => 'CUSTOM_VALIGN', 'value' => 'CDATA', 'vspace' => 'PIXELS', 'width' => 'LENGTH', ); # dizinin ilk degeri, uyulmasi gereken pattern'i # dizinin ikinci degeri, uyulmamasi gereken pattern'i belirler # uyulmamasi gereken pattern yoksa, 'veri yok' anlamina gelen '/ˆ\s*$/' ifadesini yazin # degerin kabul edilmesi icin ilk pattern'a uyup, digerine uymamasi zorunludur $degerTablosu = array ( 'CDATA' => array('/ˆ\s*(.*[ˆ\s]+)\s*$/i', # ilk ve son karakter \s olmamak kosuluyla herhangi bir metin '/ˆ\s*$/'), 'CHARACTER' => array('/ˆ\s*([\w������������])\s*$/i', # sadece tek bir karakter '/ˆ\s*$/'), 'COLOR' => array('/ˆ\s*((?:#[0-9abcdef]{6})|(?:[\w]+))\s*$/i', # renk adi ya da #000000 formatinda renk kodu '/ˆ\s*$/'), 'CONTENTTYPES' => array('/ˆ\s*([ˆ,]+.*[ˆ\s,]+)\s*$/i', # , karakteri ile ayrilmis liste '/ˆ\s*$/'), 'COORDS' => array('/ˆ\s*([0-9\.]+[0-9\.,\s]*[0-9\.]+)\s*$/i', # , karakteri ile ayrilmis sayilar '/ˆ\s*$/'), 'CUSTOM_ALIGN' => array('/ˆ\s*((?:top)|(?:middle)|(?:bottom)|(?:left)|(?:center)|(?:right)|(?:justify))\s*$/i', '/ˆ\s*$/'), 'CUSTOM_CLEAR' => array('/ˆ\s*((? '/ˆ\s*$/'), 'CUSTOM_DIR' => array('/ˆ\s*((?:ltr)|(?:rtl))\s*$/i', '/ˆ\s*$/'), 'CUSTOM_TYPE' => array('/ˆ\s*(.*[ˆ\s]+)\s*$/i', # CDATA ile ayni '/ˆ\s*$/'), 'CUSTOM_VALIGN' => array('/ˆ\s*((?:top)|(?:middle)|(?:bottom)|(?:baseline))\s*$/i', '/ˆ\s*$/'), 'DATETIME' => array('/ˆ\s*(.*[ˆ\s]+)\s*$/i', # CDATA ile ayni '/ˆ\s*$/'), 'ID' => array('/ˆ\s*([a-zA-Z]+[\w\.\-:]*)\s*$/i', # ilk karakteri harf olmak zorunda '/ˆ\s*$/'), 'IDREF' => array('/ˆ\s*([\w\.\-:]+)\s*$/i', '/ˆ\s*$/'), 'IDREFS' => array('/ˆ\s*([\w\.\-:\s]+)\s*$/i', # bosluk ile ayrilmis IDREF listesi '/ˆ\s*$/'), 'LANGUAGECODE' => array('/ˆ\s*([a-zA-Z]+[\w\.\-:]*)\s*$/i', # ID '/ˆ\s*$/'), 'LENGTH' => array('/ˆ\s*(.*[ˆ\s]+)\s*$/i', # CDATA ile ayni '/ˆ\s*$/'), 'LINKTYPES' => array('/ˆ\s*(.*[ˆ\s]+)\s*$/i', # CDATA ile ayni '/ˆ\s*$/'), 'NUMBER' => array('/ˆ\s*([0-9]+)\s*$/i', # en az bir rakkam olmak zorunda '/ˆ\s*$/'), 'PIXELS' => array('/ˆ\s*(.*[ˆ\s]+)\s*$/i', # CDATA ile ayni '/ˆ\s*$/'), 'SCOPE' => array('/ˆ\s*((?:col)|(?:row)|(?:colgroup)|(?:rowgroup))\s*$/i', '/ˆ\s*$/'), 'SHAPE' => array('/ˆ\s*((?:rect)|(?:circle)|(? '/ˆ\s*$/'), 'STYLESHEET' => array('/ˆ\s*(.*[ˆ\s]+)\s*$/i', '/(' . # STYLESHEET icinde yasak olan ifadeler 'express[iI]on|' . # expression 'scr[iI]pt|' . # script '&#|' . # &# '\/\*|' . # /* '\*\/' . # */ ')/'), 'TEXT' => array('/ˆ\s*(.*[ˆ\s]+)\s*$/i', # CDATA ile ayni '/ˆ\s*$/'), 'TFRAME' => array('/ˆ\s*((?:void)|(?:above)|(?:below)|(?:hsides)|(?:lhs)|(?:rhs)|(?:vsides)|(?:box)|(?:border))\s*$/i', '/ˆ\s*$/'), 'TRULES' => array('/ˆ\s*((? '/ˆ\s*$/'), 'URI' => array('/ˆ\s*([ˆ\s]*)\s*$/i', '/(' . # URI icinde yasak olan ifadeler 'express[iI]on|' . # expression 'scr[iI]pt|' . # script '&#|' . # &# '\/\*|' . # /* '\*\/' . # */ ')/'), 'YEREL_URI' => array('/ˆ\s*(' . # bulundugu sunucu disindan link kabul etmeyen URI '((?:http:\/\/' . str_replace('.', '\\.', $_SERVER['SERVER_NAME']) . '[ˆ\s]*)|' . '(?:[ˆ:\s]*))' . ')\s*$/i', '/(' . # URI icinde yasak olan ifadeler 'express[iI]on|' . # expression 'scr[iI]pt|' . # script '&#|' . # &# '\/\*|' . # /* '\*\/' . # */ ')/'), ); # ozellik="deger" veya ozellik formatina bakan sablon $ozellikSablon = '/ˆ\s*([\w]+)(?:\s*=\s*(?:' . '(?:"([ˆ"]*)")|' . # "deger" formatinda, bu durumda deger icinde " kullanilamaz '(? '(?:\'([ˆ\']*)\')' . # 'deger' formatinda, bu durumda deger icinde ' kullanilamaz '))?\s*(.*)/si'; return True; } ?> Bu mesaj Kaan tarafından 2010-07-21 19:07 GMT, 567 Gün önce düzenlendi. |
http://seditio-eklenti.com/shop http://ntka.org/sendedinle Seditio Daha Hızlı ve Daha Güvenli Şimdi Gücünü Hissedin. UNUTULMAYANLAR http://www.cuneytarkin.com.tr/Un.....bles.aspx Bazıları Noltalji Sever (BEN) |
Güvenli Html Oluşturma.
|
#3076 |
|
AzerbaycanUser is:
Posts: 197
Meslek: Customs
Age: 25
|
bazi semboller smayla donusmus...
hem ben bunu anlamadim,,nerde nasil kullanicaz? |
No Kids No Hack |
Konuyla İlgili Diğer Başlıklar
|
| Benzer Konular | Mesajlar | Son gönderen | Tarih |
| jQuery Sanal Klavye Oluşturma | 3 | Kaan | 2011-10-13 |
| Html -Koşullu Yorumlar | 1 | Kaan | 2011-09-06 |
| Page.add Html-Normal Sayfa Ekleme Yaması | 1 | Kaan | 2011-08-22 |
| sayfalarda html çalışmıyor | 7 | Kaan | 2011-04-30 |
| Cache Sistemi Oluşturma | 5 | Kaan | 2011-02-01 |












