Fasulye html modülleri php adı. Jdoc:include - sayfada içerik görüntüleme yöntemi. Basit eğik çizgiler ekleme

İçeriğin şablon gövdesinde görüntülenmesine yönelik yöntemler konusuna kısaca değindik. Şimdi ne olduğuna ve neyle yenildiğine daha yakından bakalım. Yani, yöntem bildirimleri jdoc her Joomla şablonunda mevcuttur ve bunu veya bu bilgiyi şablonun gövdesinde (yani site sayfasında) görüntüleyin. Genel olarak yöntem bildirimi şuna benzer:

Bu satır, sitedeki bileşenlerden gelen bilgileri (örneğin com_content'teki makaleler) görüntüler. Çıkış öğelerinin türü öznitelikte belirtilir.

1. tip - çıktı elemanlarının tipleri.

  • bileşen- yukarıda yazdığım gibi sayfanın ana içeriğini görüntüler. Şablon başına yalnızca bir kez çağrılabilir.
  • KAFA- ayrıca açılış etiketinden sonra bir kez duyurulur . Stilleri, komut dosyalarını, ve geçerli sayfanın meta verileri.</li><li><i>İleti</i><i>- </i> sistem mesajlarını görüntüler. Belgenin gövdesinde bir kez bildirildi.</li><li><i>kurulum</i>- hiçbir şey göstermez ve kurulum için bir “talimattır”.</li><li><i>modül -</i> sayfada tek bir modül görüntüler. Reklam sayısı sınırsızdır.</li><li><i>modüller</i>- Önceki türden farklı olarak, birden fazla sayıda modülü kendi konumunda görüntülemenize olanak tanır.</li> </ul><p>Listelenen ilk dört tür için bunları sayfada belirtmeniz yeterlidir. Modül türü söz konusu olduğunda görev biraz daha karmaşık hale gelir. Sayfada bir modül görüntülemek için öncelikle onun için bir modül oluşturmamız gerekir. <b>modüler konum</b> benzersiz bir tanımlayıcıyla (modül konum adı). Bu, name = "position name" niteliği ve satırın zorunlu eklenmesi kullanılarak yapılır:</p><p> <position>pozisyon Adı</position>şablonDetails.xml dosyasına. TemplateDetails.xml dosyasındaki pozisyonun ismini açıklayarak sistemde belirliyoruz ve modül yöneticisinde görüyoruz. Üst menüyü görüntülemek için varsayılan olarak name = "user3" konumu kullanılmasına rağmen, konumların adları isteğe bağlı olabilir.</p><p><b>2. stil - çıktı stilinin açıklaması (mod kromu).</b></p> <p>Belirtilen stile bağlıdır <a href="https://5visa.ru/tr/multimedia/raskladnoi-planshet-lenovo-folio-predstavila-skladnoi-planshet-i-smartfon.html">dış görünüş</a> ve modül kabuk yapısı. Öyle görünüyor</p><p> :<jdoc:include type="modules" name="user1" style="xhtml" />Varsayılan olarak birkaç modül çıktısı stili vardır:</p><ul><li><i>xhtml -</i> modülü modChrome_xhtml($module, &$params, &$attribs) başlıklı fonksiyonla bir blokta görüntüler <br>{<br>if (!empty ($module->content)) : ?> <br> <div class="moduletable<?php echo htmlspecialchars($params->get("moduleclass_sfx")); ?>"> <br> <?php if ($module->gösteri başlığı != 0) : ?> <br> <h3><?php echo $module->başlık; ?></h3><br> <?php endif; ?><br> <?php echo $module->içerik; ?> <br> </div><br> <?php endif;<br>}</li><li><i>masa -</i> modülü bir tablo yapısı düzeninde görüntüler <br>function modChrome_table($module, &$params, &$attribs) <br>{ ?><br> <table cellpadding="0" cellspacing="0" class="moduletable<?php echo htmlspecialchars($params->get("moduleclass_sfx")); ?>"> <br> <?php if ($module->gösteri başlığı != 0) : ?> <br> <tr><br> <th><br> <?php echo $module->başlık; ?> <br> </th><br> </tr><br> <?php endif; ?><br> <tr><br> <td><br> <?php echo $module->içerik; ?> <br> </td><br> </tr><br> </table><br> <?php<br>}</li><li><i>horz -</i> bir modülün içeriğini bir tablo hücresinde görüntüler, yatay olarak işlev modChrome_horz($module, &$params, &$attribs) <br>{ ?><br> <table cellspacing="1" cellpadding="0" width="100%"><br> <tr><br> <td><br> <?php modChrome_table($module, $params, $attribs); ?><br> </td><br> </tr><br> </table><br> <?php<br>}</li><li><i>yuvarlak</i>- grafik kenarlıkları (örn. yuvarlatılmış köşeler) biçiminde karmaşık şekillendirme için modülü birkaç iç içe blok halinde görüntüler function modChrome_rounded($module, &$params, &$attribs) <br>{ ?><br> <div class="module<?php echo htmlspecialchars($params->get("moduleclass_sfx")); ?>"> <br> <div><br> <div><br> <div><br> <?php if ($module->gösteri başlığı != 0) : ?> <br> <h3><?php echo $module->başlık; ?></h3><br> <?php endif; ?><br> <?php echo $module->içerik; ?> <br> </div><br> </div><br> </div><br> </div><br> <?php<br>}</li><li><i>taslak</i>- modül bloğu işlevine önceden ayarlanmış css stilleri ekler modChrome_outline($module, &$params, &$attribs) <br>{<br>statik $css=yanlış; <br>eğer (!$css) <br> {<br>$css=doğru; <br>jimport("joomla.environment.browser"); <br>$doc = JFactory::getDocument(); <br>$tarayıcı = JBrowser::getInstance(); <br>$doc->addStyleDeclaration(".mod-preview-info ( dolgu: 2 piksel 4 piksel 2 piksel 4 piksel; kenarlık: 1 piksel düz siyah; konum: mutlak; arka plan rengi: beyaz; renk: kırmızı;)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper ( arka plan rengi:#eee; border: 1px noktalı siyah; color:#700;)"); <br>if ($browser->getBrowser()=="msie") <br> {<br>if ($tarayıcı->getMajor()<= 7) {<br>$doc->addStyleDeclaration(".mod-preview-info (filter: alpha(opacity=80);)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (filter: alpha(opacity=50);)"); <br> } <br>başka( <br>$doc->addStyleDeclaration(".mod-preview-info (-ms-filter: alpha(opacity=80);)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (-ms-filter: alpha(opacity=50);)"); <br> } <br> } <br>başka <br> {<br>$doc->addStyleDeclaration(".mod-preview-info (opaklık: 0.8;)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (opaklık: 0,5;)"); <br> } <br> } <br> ?><br> <div class="mod-preview"><br> <div class="mod-preview-info"><?php echo $module->konum."[".$module->style."]"; ?></div><br> <div class="mod-preview-wrapper"><br> <?php echo $module->içerik; ?> <br> </div><br> </div><br> <?php<br>}</li><li><i>hiçbiri</i>- hiç belirtilmeyen stile benzer. Tasarım ve başlık işlevi olmayan bir modülü görüntüler modChrome_none($module, &$params, &$attribs) <br>{<br>echo $modül->içerik; <br>}</li> </ul><p>Tüm önceden ayarlanmış stiller şablonlar/sistem/html/modules.php dosyasında bulunur. Ancak yalnızca sunulan seçenekleri kullanmakla sınırlı değiliz, aynı zamanda kendimizinkini yaratma konusunda da oldukça yetenekliyiz.</p> <p><b>3. Özel bir krom modu oluşturun.</b></p> <p><b><br></b> Bu nedenle, sağlanan varsayılan modül gösterim türleri mevcut gereksinimleri karşılamamaktadır. Kendi tasarım stilinizi eklemeniz gerekir. Örnek olarak oldukça sık tekrarlanan bir durumu seçelim. Göreve göre yerine <h3>modül başlığını etikete koy <span>, anlamsal olarak tarafsızdır. Ayrıca modül içerik bloğunu ayrı bir yere yerleştirmeniz gerekir. <div>. Kendi modül çıktı stilinizi oluşturmak için standart araçları kullanacağız. Çoğu Joomla şablonunun, şablon oluşturma olarak adlandırılan bir html/ klasörü (şablonlar/şablon adı/html/) vardır. Yani, bu klasöre bir modül şablonu kopyalarsanız, modüller/my_module/tmpl/default dizinindeki şablon yerine, şablonlar/şablon adı/html/my_modules/default'daki dosyanın çıktısı alınacaktır. Bileşenler aynı şekilde şablonlanmıştır. Kullanışlı ve pratik. Şablonunuzun html/ klasöründe bir module.php dosyası oluşturun. Şablonda böyle bir klasör yoksa oluşturacağız. Bunu bir dosyaya yazalım</p><p> <?php<br>function modChrome_modbox($module, &$params, &$attribs) // Fonksiyonu çağır <br>{<br>if (!empty ($module->content)) : /* Konumun etkin bir modül içerip içermediğini kontrol edin */?> <br> <div class="moduletable<?php echo htmlspecialchars($params->get("moduleclass_sfx")); /* modül sınıfının css sonekini göster */ ?>"> <br> <?php if ($module->showtitle != 0) : /* modül başlığının içerip içermediğini kontrol edin */ ?> <br> <span class="title"><?php echo $module->başlık; /* Başlığı yazdır */ ?></span><br> <?php endif; ?><br> <div class="modcontent"><br> <?php echo $module->içerik; /* Modülün içeriğinin çıktısı */ ?> <br> </div><br> </div><br> <?php endif;<br>} <br>?> Bitti. Şimdi bunu çıktı stili olarak belirtmeniz yeterli. <jdoc:include type="modules" name="user1" style="modbox"/>Pozisyonumuza bir modül atayıp sonuca bakıyoruz.</p> <p>PHP ile ilgili en güzel şeylerden biri HTML formlarıyla çalışma şeklidir. Burada önemli olan her form öğesinin otomatik olarak PHP programlarınız tarafından kullanılabilir hale gelmesidir. PHP'de formların kullanımına ilişkin ayrıntılı bilgi için bölümü okuyun. Örnek bir HTML formu aşağıda verilmiştir:</p> <p><b>Örnek 1: En Basit HTML Formu</b></p> <p><form action="action.php" method="post"> <p>Adınız: <input type="text" name="name" /></p> <p>Yaşınız: <input type="text" name="age" /></p> <p><input type="submit" /></p> </form></p> <p>Bu formda özel bir şey yok. Bu, herhangi bir özel etiketi olmayan normal bir HTML formudur. Kullanıcı formu doldurup gönder butonuna tıkladığında action.php sayfası çağrılacaktır. Bu dosyada şöyle bir şey olabilir:</p> <p><b>Örnek 2 Form verilerinin görüntülenmesi</b></p> <p>Merhaba,<?php echo htmlspecialchars ($_POST [ "name" ]); ?> .<br>Sana<?php echo (int) $_POST [ "age" ]; ?>yıllar.</p> <p>Bu programın örnek çıktısı:</p> <p>Merhaba Sergey. 30 yaşındasın.</p> <p>Eğer kod parçalarını dikkate almazsanız <span>htmlspecialchars()</span> Ve <i>(int)</i> Bu kodun çalışma prensibi basit ve anlaşılır olmalıdır. <span>htmlspecialchars()</span> Sayfanıza kötü amaçlı HTML veya Javascript eklenmemesi için "özel" HTML karakterlerinin düzgün şekilde kodlanmasını sağlar. Bir sayı olması gerektiğini bildiğimiz yaş alanını basitçe şu sayıya dönüştürebiliriz: <span>tamsayı</span>İstenmeyen karakterlerden otomatik olarak kurtulacak. PHP bunu filtre uzantısını kullanarak da otomatik olarak yapabilir. $_POST["name"] ve $_POST["age"] değişkenleri sizin için PHP tarafından otomatik olarak ayarlanır. Daha önce $_SERVER süper küresel değişkenini kullanıyorduk, ancak burada aynı zamanda tüm POST verilerini içeren $_POST süper küresel değişkenini de kullanıyoruz. dikkat et ki <i>gönderme yöntemi</i> Formumuzun (yöntemi) POST'tur. Yöntemi kullanırsak <i>ELDE ETMEK</i> o zaman form bilgimiz süper küresel değişken $_GET'te olacaktır. Alternatif olarak, veri kaynağı önemli değilse $_REQUEST değişkenini kullanabilirsiniz. Bu değişken GET, POST, COOKIE verilerinin bir karışımını içerir.</p> <p><b>15 yıl önce</b></p> <p>HTTP spesifikasyonuna göre, sunucu tarafında bir şeyin durumunu değiştirmek için formu kullandığınızda POST yöntemini kullanmalısınız. Örneğin, bir sayfada kullanıcıların kendi yorumlarını eklemelerine izin veren bir form varsa, bunun gibi Buradaki sayfada form POST kullanmalıdır. POST aracılığıyla ulaştığınız bir sayfada "Yeniden Yükle" veya "Yenile" seçeneğini tıklarsanız, bu neredeyse her zaman bir hatadır; aynı yorumu iki kez göndermemelisiniz -- bu sayfaların yer imlerine eklenmemesinin veya önbelleğe alınmamasının nedeni budur.</p><p>Formunuz sunucudan bir şey alırken ve aslında hiçbir şeyi değiştirmediğinde GET yöntemini kullanmalısınız. Örneğin, bir arama motoru formu GET kullanmalıdır, çünkü bir Web sitesinde arama yapmak müşterinin ilgilenebileceği hiçbir şeyi değiştirmemelidir ve bir arama motoru sorgusunun sonuçlarını yer imlerine eklemek veya önbelleğe almak, yer imlerine eklemek veya önbelleğe almak kadar faydalıdır. Statik bir HTML sayfası.</p> <p><b>2 yıl önce</b></p> <p>Açıklığa kavuşturmakta fayda var:</p><p>POST, GET'ten daha güvenli değildir.</p><p>GET vs POST'u seçmenin nedenleri, isteğin amacı (bilgi "gönderiyor musunuz"?), isteğin boyutu (bir URL'nin ne kadar uzun olabileceğine ilişkin sınırlamalar vardır ve GET parametrelerinin gönderildiği yer) gibi çeşitli faktörleri içerir. URL) ve İşlemin ne kadar kolay paylaşılabilir olmasını istediğinizi - Örnek, Google Aramaları GET'tir çünkü arama sorgusunu kopyalamayı ve yalnızca URL'yi paylaşarak başka biriyle paylaşmayı kolaylaştırır.</p><p>GET'in paylaşılmasının POST'tan daha kolay olması nedeniyle güvenlik burada yalnızca dikkate alınan bir husustur. Örnek: GET tarafından bir şifrenin gönderilmesini istemezsiniz çünkü kullanıcı sonuçtaki URL'yi paylaşabilir ve şifresini yanlışlıkla açığa çıkarabilir.</p><p>Ancak, ağ bağlantısının kendisini korumak için TLS/SSL dağıtmazsanız, iyi konumlanmış kötü niyetli bir kişi tarafından GET ve POST'un ele geçirilmesi aynı derecede kolaydır.</p><p>HTTP üzerinden gönderilen tüm Formlar (genellikle 80 numaralı bağlantı noktası) güvenli değildir ve bugün (2017), genel bir web sitesinin HTTPS (temel olarak HTTP + Aktarım Katmanı Güvenliği olan) kullanmaması için pek fazla iyi neden yoktur.</p><p>Bonus olarak, TLS kullanırsanız, kullanıcılarınızın trafiğinize sizin tarafınızdan konulmayan kod (AD'ler) enjekte edilmesi riskini en aza indirirsiniz.</p> <p>Bu, PHP'yi içeren sınıfın yaygın bir güvenlik açığıdır. Ancak denetimini yaptığım kişi bana bu güvenlik açığından yararlanılamayacağını, dolayısıyla sayılmadığını söyledi. onunla tartışmak zorunda kaldım</p> <h2>PHP-include nedir?</h2> <p>Bu güvenlik açığıyla ilgili küçük bir eğitim programı yürütelim. PHP-include, isteğe bağlı bir dosyayı, örneğin şu kodu “eklemenize” izin veren bir güvenlik açığıdır:</p> <p>$modül=$_REQUEST["modül"]; include("modüller/".$module);</p> <p>Ve “/etc/passwd” dosyasında genellikle PHP etiketi bulunmadığından (<?php и?>), normal bir php betiğinde php etiketlerinin arkasında html kodunun görüntülenmesi gibi tarayıcıda görüntülenecektir. Elbette dosyaları okumak bu saldırının olası uygulamalarından sadece bir tanesi. Önemli olan gerekli dosyaların gerekli PHP koduna dahil edilmesidir.</p> <p>Örneğe geri dönelim. Bunu karmaşıklaştıralım:</p> <p>$modül=$_REQUEST["modül"]; include("modules/".$module."/module.class.php");</p> <table class="crayon-table"><tr class="crayon-row"><td class="crayon-nums " data-settings="show"> </td> <td class="crayon-code"><p>$modül = $_REQUEST [ "modül" ] ;</p><p>include ("modules/" . $module . "/module.class.php" ) ;</p> </td> </tr></table><p>Gördüğünüz gibi artık değişkenimizin sonuna bir satır ekleniyor ve bu da herhangi bir dosya eklememizi engelliyor. Dolayısıyla, birçok PHP işlevi ikili olarak güvenli değildir, yani bu tür işlevler NULL baytını bir dizenin sonu olarak kabul eder. Komut dosyasına şu şekilde erişiyoruz:</p> <p>script.php?module=../../../../../../../../../../../etc/passwd%00</p> <p>Magic_quotes yönergesi devre dışı bırakılırsa, /etc/passwd içeriğini tekrar göreceğiz.</p> <h2>Bir güvenlik açığı var mı?</h2> <p>Kodumuza geri dönelim:</p> <p>$module=addslashes($_REQUEST["module"]); include("modules/".$module."/module.class.php");</p> <table class="crayon-table"><tr class="crayon-row"><td class="crayon-nums " data-settings="show"> </td> <td class="crayon-code"><p>$module = addslashes ($_REQUEST [ "module" ] ) ;</p><p>include ("modules/" . $module . "/module.class.php" ) ;</p> </td> </tr></table><p>Gördüğünüz gibi değişkenimiz “addslashes” üzerinden geçmek zorunda kalıyor ve NULL byte kullanmaya çalışırsak “\0”a dönüştürülecek ve dahil etme çalışmayacaktır.</p> <p>Ancak ilerleme hala geçerli değil! USH'den bazı kişilerin PHP'de ilginç bir özellik bulduğu ortaya çıktı: PHP dosya sistemi saldırı vektörleri (İngilizce). Makalenin ana fikrini kısaca özetlemek gerekirse, php çeşitli özellikleri kullanarak yolları işler:</p> <ul><li><b>Yol kesme</b>- php, yol dizesini belirtilen MAXPATHLEN uzunluğuna kadar keser (Windows'ta en fazla 270 karakter, NIX'te - genellikle 4096, BSD'de - genellikle 1024)</li> <li><b>Yol Normalleştirme</b>— php, fazladan "/" ve "/" karakterlerini kaldırarak yolu özel bir şekilde işler. ve bunların çeşitli kombinasyonları</li> <li><b>Kanonik forma indirgeme</b>— gereksiz geçişler kaldırılır, örneğin “dir1/dir2/../dir3”, “dir1/dir3/”e dönüştürülürken “dir2” dizininin varlığı kontrol edilmez ve diğer benzer dönüşümler (örn. normalleştirmenin devamı) )</li> </ul><p>Şimdi sırasıyla geçilen yola ne olur:</p> <ol><li>Yol göreceliyse, önce include_path yönergesindeki değerler değiştirilir</li> <li>Yol daha sonra platforma bağlı olarak belirli bir uzunluğa kadar kesilir.</li> <li>Yol normalleşiyor</li> <li>Yol kanonik forma indirgenmiştir</li> </ol><p>Şimdi bunu kullanmaya çalışalım. “Modules/” dizininde bulunan belirli bir “test.php” dosyasını eklemeye çalışalım. Bunu yapmak için sonuna “/.” sembolünü ekleyin. böylece dosya adı ve include_path değeriyle birlikte toplam uzunluk açıkça 4096 karakterden fazladır. <br>script.php?module=test.php/././.[...]/././.</p> <p>Bu durumda, yol dizisinin tamamının (zaten kırpılmış) eğik çizgiyle değil noktayla (önemli!) biteceğini tahmin etmeniz gerekir. Bunu yapmak için şöyle bir eğik çizgi ekleyebilirsiniz: <br></p> <p>Ve bu seçeneklerden biri kesinlikle işe yarayacaktır.</p> <h2>Analiz</h2> <p>Yolda hangi dönüşümlerin olacağına sırayla bakalım <br>modüller/test.php//././.[...]/./././module.class.php <br><i>4200 karakter</i> </p> <p>Satırın başına gelen ilk şey, include_path'teki değerin ona eklenmesidir: <br>/home/site/public_html/modules/test.php//././.[...]/./././module.class.php <br><i>4223 karakter</i> </p> <p>Daha sonra dize MAXPATHLEN olarak kesilir (4096 diyelim): <br>/home/site/public_html/modules/test.php//././.[...]/./. <br><i>4096 karakter</i> </p> <p>Burada neden başka bir eğik çizgi eklemenin gerekli olduğunu görebilirsiniz (aksi takdirde çizgi eğik çizgiye kadar kesilirdi). Şimdi bu satır normalleştirildi, önce fazladan eğik çizgiler kaldırıldı: <br>/home/site/public_html/modules/test.php/././.[...]/./. <br><i>4095 karakter</i> </p> <p>Sonuç olarak ihtiyacımız olan dosyanın doğru yolunu alıyoruz ve bu yol zaten include'a aktarılacak ve ihtiyacımız olan dosya dahil edilecek.</p> <p>Yani “test.php” dosyamızı başarıyla dahil edeceğiz. <br>script.php?module=test.php//././.[...]/././.</p> <p>Bu, güvenlik açığının teorik olmadığı anlamına gelir. Sonuç olarak, müvekkilim bahsi kaybetti ve ben bahsi ve üzerine oynadığımız 10 rubleyi kazandım. Tabii 10 rublenin yanı sıra müşterinin gözünde de güven ve saygı kazandım ki bu da önemli.</p> <h2>Notlar</h2> <p>Burada bu güvenlik açığından yararlanmanın birkaç ilginç özelliğine bakacağım.</p> <h3>Dizinden çık</h3> <p>Bu kodu göz önünde bulundurun:</p> <p> ) ; </p> <p>RFI kullanabileceğiniz ve uzak sunucudan bir dosya ekleyebileceğiniz noktasını atlayalım. Sunucuda “allow_url_include=OFF” diyelim.</p> <p>Aşağıdaki dizinden bir dosya eklememiz gereken bir durumu düşünelim: <br>script.php?module=../test.php/././.[...]/././.</p> <p>Böyle bir istek, dosya bulunamadı gibi bir hata üretecektir. Ve bunu aşmak için onu şu şekilde çağırmamız gerekiyor: <br>script.php?module=blabla/../../test.php/././.[...]/././.</p> <p>Yolların kanonlaştırılmasını açıklamam boşuna değildi. Bu sayede “blabla” dizininin bulunmasına gerek kalmıyor.</p> <h3>Basit eğik çizgiler ekleme</h3> <p>Dikkatli bir okuyucu muhtemelen normalleştirme açıklamasında ekstra eğik çizgilerin (/) ve eğik çizgili noktaların (/) kaldırıldığını yazdığımı fark etmiştir; o halde neden noktanın sonda bitmesiyle gereksiz güçlüklerden kaçınmak için eğik çizgileri kullanmayasınız?</p> <p>Her şey algoritmalarla ilgili, yani "/" noktası olan eğik çizgi. tamamen kaldırılır. Ancak basit eğik çizgilerde durum biraz daha karmaşıktır; normalleştirme sırasında, yalnızca bir (!) eğik çizgi kalana kadar her iki eğik çizgi bir ile değiştirilir, örnek:</p><p>/home/site/public_html/modules/test.php//////////////////// <br><i>57 karakter</i> <br> ↓<br>/home/site/public_html/modules/test.php///////// <br><i>48 karakter</i> <br> ↓<br>/home/site/public_html/modules/test.php///// <br><i>44 karakter</i> <br> ↓<br>/home/site/public_html/modules/test.php/// <br><i>42 karakter</i> <br> ↓<br>/home/site/public_html/modules/test.php// <br><i>41 karakter</i> <br> ↓<br>/home/site/public_html/modules/test.php/ <br><i>40 karakter</i> </p> <h3><b>Küçük bir ara söz:</b></h3> <p>Üstelik birçok popüler hack kaynağına dikkat ederseniz bu hatayı fark edeceksiniz. Anladığım kadarıyla bu hata, belirli bir Raz0r'ın bir vektör önerdiği makalesiyle başladı: <br>index.php?act=../../../../../etc/passwd/////[…]/////</p> <p>Ve dergiye bile dikkat edin ][aker bu hatayı makalesinde tekrarladı. Üstelik orijinal USH yazısında bile sadece eğik çizgi kullanılmasının tavsiye edilmediği, normalleştirmeden önce sonuna nokta karakteri bırakılması gerektiği açıkça yazıyordu. Ancak basit eğik çizgiler (sonunda nokta olmasa bile) yalnızca PHP'de Suhosin ile çalışır.</p> <p>Yani, "/" noktasıyla birlikte eğik çizgi kullanın. - daha evrensel bir yöntem, çünkü "/" eğik çizgisinden farklı olarak php'nin tüm sürümlerinde çalışır.</p> <h2>Çözüm</h2> <p>Umarım bu makale, komut dosyalarınızda en ufak bir güvenlik açığını bile bırakmamanız gerektiğini anlamanıza yardımcı olacaktır, çünkü er ya da geç onlar için kendi saldırı vektörünüzü geliştirebilirsiniz, bu da ciddi sonuçlara yol açabilir.</p> <p>Em öğesi, vurgulu bir metin pasajını temsil eder. Okuyucunun dikkatini bir cümlenin veya paragrafın anlamına çekmek için kullanabilirsiniz. Bunun ne anlama geldiğini em öğesini açıklayan 'dan sonra anlatacağım.</p><blockquote><b>Tablo 8-6:</b> em öğesi</blockquote><blockquote><b>Şekil 8-3:</b> em öğesini kullanma</blockquote><p>Bu örnekte cümlenin başındaki I(I) vurgusunu yapıyorum. Em unsurunu düşünürsek, bir cümleyi yüksek sesle söylediğimizde cümlenin bir soruya cevap olduğunu düşünürüz. Örneğin, "Elmayı ve portakalı kim sever?" diye sorduğumu hayal edin. Cevabınız şu olacak: “Elmaları ve portakalları severim.” (Bunu yüksek sesle söyleyip ben vurgusunu yaptığınızda bu meyveleri seven bir insan olduğunuzu açıkça belirtmiş olursunuz).</p><p>Ama eğer "Elmayı ve başka şeyleri sever misin?" diye sorsaydım. Şöyle cevap verebilirsiniz: "Elmaları ve portakalları severim." Bu durumda vurgu son söze yapılacak ve portakalın da sevdiğiniz başka bir meyve olduğu vurgulanacaktır. HTML'deki bu seçenek şöyle görünecektir:</p><p>elmaları severim ve <b><em> </b> portakallar <b></em> </b>.</p><h3>Yabancı kelimelerin ve teknik terimlerin tanımı</h3><p>i öğesi, çevresindeki içerikten farklı nitelikteki bir metin parçasını belirtir. Bu oldukça belirsiz bir tanımdır, ancak yaygın örnekler arasında diğer dillerden sözcükler, teknik veya bilimsel terimler ve hatta insan düşünceleri (konuşmanın aksine) yer alır. i öğesi açıklanmıştır.</p><blockquote><b>Tablo 8-7:</b>öğe ben</blockquote><blockquote><b>Şekil 8-5:</b> s öğesini kullanma</blockquote><br><img src='https://i2.wp.com/storage.smarly.net/html5/8.5.png' width="100%" loading=lazy loading=lazy><h3>Önemli Metni Tanımlama</h3><p>Güçlü öğe, önemli olan bir metin pasajını belirtir. Bu eleman şurada anlatılmıştır.</p><blockquote><b>Tablo 8-9:</b> Güçlü öğe</blockquote><blockquote><b>Şekil 8-7:</b> u öğesini kullanma</blockquote><br><img src='https://i1.wp.com/storage.smarly.net/html5/8.7.png' width="100%" loading=lazy loading=lazy><h3>Küçük yazı tipi ekleme</h3><p>Küçük öğe, küçük yazı tipini belirtir ve genellikle nitelik ve açıklamalar için kullanılır. B küçük elemanı temsil eder.</p><blockquote><b>Tablo 8-11:</b> eleman küçük</blockquote><blockquote><b>Şekil 8-8:</b> Küçük öğeyi kullanma</blockquote><br><img src='https://i1.wp.com/storage.smarly.net/html5/8.8.png' width="100%" loading=lazy loading=lazy><h3>Üst simge ve alt simge ekleme</h3><p>Üst simge ve alt simgeyi belirtmek için sırasıyla sub ve sup öğelerini kullanabilirsiniz. Bazı dillerde sözcük yazmak için üst simge kullanılır ve basit matematiksel ifadelerde hem üst simge hem de alt simge kullanılır. Bu unsurlar sunulmuştur.</p><blockquote><b>Tablo 8-12:</b> Alt ve destek elemanları</blockquote><blockquote><b>Şekil 8-9:</b> Sub ve sup elemanlarını kullanma</blockquote><br><img src='https://i1.wp.com/storage.smarly.net/html5/8.9.png' width="100%" loading=lazy loading=lazy> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> </div> <div class="single-popular"> <div class="single-popular-tit col-lg-12">Kategoride popüler:</div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/8e694afe297762af56fa10dc9d64eb9d.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Bilgisayarda karaoke klibi nasıl oluşturulur?"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Bilgisayarda karaoke klibi nasıl oluşturulur?</div> <a href="https://5visa.ru/tr/at/sozdanie-karaoke-svoimi-rukami-kak-sozdat-karaoke-klip-na-kompyutere-eto.html" rel="bookmark" title="Bilgisayarda karaoke klibi nasıl oluşturulur?">Okumak</a> <div class="clr"> </div> </div> </div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/d610310bd3744add66d0b4be4dfee6a5.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Oyun için Origin uygulaması gereklidir ancak yüklü değildir. FIFA 16, Origin gerektirir."/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Oynamak için Origin uygulaması gerekiyor ancak FIFA yüklü değil...</div> <a href="https://5visa.ru/tr/multimedia/prilozhenie-origin-neobhodimo-dlya-igry-no-ono-ne-ustanovleno-prilozhenie-origin.html" rel="bookmark" title="Oyun için Origin uygulaması gereklidir ancak yüklü değildir. FIFA 16, Origin gerektirir.">Okumak</a> <div class="clr"> </div> </div> </div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/30ee436baf8151ff5b776ef4575c45ea.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Facebook sosyal ağında kişisel bir sayfanın kaydedilmesi"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Facebook sosyal ağında kişisel bir sayfanın kaydedilmesi</div> <a href="https://5visa.ru/tr/multimedia/zaregistrirovat-dve-stranicy-facebook-na-odin-nomer-registraciya-lichnoi.html" rel="bookmark" title="Facebook sosyal ağında kişisel bir sayfanın kaydedilmesi">Okumak</a> <div class="clr"> </div> </div> </div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/f19ca0b3b94ccf60b634700168b060f2.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Basit Nmap Nmap Taraması Nasıl Çalıştırılır"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Basit Nmap Nmap Taraması Nasıl Çalıştırılır</div> <a href="https://5visa.ru/tr/installation-and-configuration/setevoi-skaner-nmap-i-ego-vozmozhnosti-kak-zapustit-prostoe-skanirovanie.html" rel="bookmark" title="Basit Nmap Nmap Taraması Nasıl Çalıştırılır">Okumak</a> <div class="clr"> </div> </div> </div> <div class="clr"></div> </div> </div>  <div class="sidebar col-lg-3 col-md-4 col-sm-12"> <div class="sidebar-wrp"> <div class="sidebar-wrp-title">En son makaleler</div> <div class="sidebar-wrp-des"> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/934317c9dc463eca8a068c72103a9d1c.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Bir görüntüyü birkaç derece döndürmek nasıl...</div> <div class="clr"></div> <a href="https://5visa.ru/tr/internet/kak-povernut-izobrazhenie-v-vorde-i-eshche-neskolko-priemov.html">Okumak</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/22b772bd41ea5a26bd659632075d8633.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Yandex tarayıcısında reklamların devre dışı bırakılması Nerede...</div> <div class="clr"></div> <a href="https://5visa.ru/tr/tips/kak-otklyuchit-blokirovku-reklamy-v-brauzere-yandeks-otklyuchenie-reklamy-v-yandeks.html">Okumak</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/fb321d5756cb0506f3cba53b24342950.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Wi-Fi bağlantı sorunlarını giderme...</div> <div class="clr"></div> <a href="https://5visa.ru/tr/problems/shlyuz-ustanovlennyi-po-umolchaniyu-ne-dostupen-ustranenie-problem-s-wi-fi.html">Okumak</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/adf1bbe784035fed9b433ebb2510db2f.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Windows 10 profilinde şifreyi değiştirin</div> <div class="clr"></div> <a href="https://5visa.ru/tr/education/pomenyat-parol-na-profile-vindovs-10.html">Okumak</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/a1f00d0e4dfd0c63b7073715f264f36a.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Kablosuz yönlendiricileri kurma talimatları...</div> <div class="clr"></div> <a href="https://5visa.ru/tr/at/pravilnaya-nastroika-wi-fi-routera-asus-rt-g32-instrukciya-po-nastroike.html">Okumak</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/da305b0b628cd68b021f50a2fe2a3a89.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Bir sabit disk nasıl seçilir ve hangisini satın almak daha iyidir?</div> <div class="clr"></div> <a href="https://5visa.ru/tr/multimedia/kakaya-skorost-zhestkogo-diska-horoshaya-kak-vybrat-zhestkii-disk-i.html">Okumak</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/470eb147f848e5af1fb8b95300372a3e.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Aptallar için Meizu. Aramalar ve adres defteri....</div> <div class="clr"></div> <a href="https://5visa.ru/tr/internet/meizu-dlya-chainikov-zvonki-i-adresnaya-kniga-storonnie-prilozheniya-dlya.html">Okumak</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/7a081806d1b8bf3a3ff61c21be94541f.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">PDFMaster programını indirin</div> <div class="clr"></div> <a href="https://5visa.ru/tr/program/smotret-pdf-faily-skachat-programmu-pdfmaster.html">Okumak</a> </div> <div class="clr"></div> </div> </div> <div id="text-4" class="widget widget_text sidebar-wrp"> <div class="textwidget"> </div> </div> <div class="clr"></div> </div> </div> </div> </div> <div id="footer"> <div class="container"> <div class="row"> <div class="footer-contacts col-lg-6 col-md-6 col-sm-12 col-xs-12"> <img src="/public/logo.png" loading=lazy loading=lazy> <div class="footer-contacts-tit">5visa.ru <br>İnternet. Multimedya. Gezgin. Eğitim. İLE. Aygıt yazılımı. Programlar. Tavsiye. Kurulum</div> <div class="footer-soc"> <div class="footer-soc-wrp"> <div class="soc_w"> <a href="https://vk.com/share.php?url=https://5visa.ru/education/bobovye-html-modules-php-name-jdoc-include---metod-otobrazheniya-kontenta-na-stranice.html" class="soc-link vk" target="_blank"></a> <a href="https://www.facebook.com/sharer/sharer.php?u=https://5visa.ru/education/bobovye-html-modules-php-name-jdoc-include---metod-otobrazheniya-kontenta-na-stranice.html" class="soc-link fb" target="_blank"></a> </div> </div> </div> </div> <div class="footer-links col-lg-4 col-md-6 col-sm-12 col-xs-12"> </div> <div class="footer-links col-lg-4 col-md-4 col-sm-4 col-xs-4" style="display: block;"> <ul> <li><a href="">Proje baskısı</a></li> <li><a href="">Web sitesinde reklam</a></li> </ul> <ul> <li><a href="https://5visa.ru/tr/feedback.html">Kişiler</a></li> <li><a href="https://5visa.ru/tr/sitemap.xml">Site Haritası</a></li> </ul> </div> </div> </div> <div class="copyright">© 2024 İnternet. Multimedya. Gezgin. Eğitim. İLE. Aygıt yazılımı. Programlar. Tavsiye. Kurulum</div> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script src="https://5visa.ru/wp-content/themes/trudinsp/js/bootstrap.min.js"></script> <script type="text/javascript" src="https://5visa.ru/wp-content/themes/trudinsp/js/SmoothScroll.js"></script> <a id="scroll-to-top" href="#" title="Yukarıya Kaydır">Tepe</a> <script type='text/javascript' src='https://5visa.ru/wp-content/plugins/contact-form-7/includes/js/jquery.form.min.js?ver=3.51.0-2014.06.20'></script> <script type='text/javascript' src='https://5visa.ru/wp-content/plugins/jquery-smooth-scroll/js/jss-script.min.js?ver=4.8.3'></script> <script type='text/javascript' src='https://5visa.ru/wp-content/plugins/table-of-contents-plus/front.min.js?ver=1509'></script> <script type='text/javascript' src='/wp-includes/js/jquery/ui/effect.min.js?ver=1.11.4'></script> <script type='text/javascript' src='/wp-includes/js/jquery/ui/effect-blind.min.js?ver=1.11.4'></script> <script type='text/javascript'> /* <![CDATA[ */ var stbUserOptions = { "mode":"css","cssOptions":{ "roundedCorners":false,"mbottom":20,"imgHide":"http:\/\/5visa.ru\/wp-content\/plugins\/wp-special-textboxes\/themes\/stb-metro\/minus.png","imgShow":"http:\/\/5visa.ru\/wp-content\/plugins\/wp-special-textboxes\/themes\/stb-metro\/plus.png","strHide":"\u0421\u043a\u0440\u044b\u0442\u044c","strShow":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c"} }; /* ]]> */ </script> <script type='text/javascript' src='https://5visa.ru/wp-content/plugins/wp-special-textboxes/js/wstb.min.js?ver=5.5.101'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.8.3'></script> <script type="text/javascript" id="slb_context">/* <![CDATA[ */if ( !!window.jQuery ) { (function($){ $(document).ready(function(){ if ( !!window.SLB ) { { $.extend(SLB, { "context":["public","user_guest"]} );} } })} )(jQuery);} /* ]]> */</script> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> </body> </html>