Beans html модульдерінің PHP атауы. Jdoc:include - бетте мазмұнды көрсету әдісі. Қарапайым қиғаш сызықтарды қосу

Біз үлгінің негізгі бөлігінде мазмұнды көрсету әдістері тақырыбына қысқаша тоқталдық. Енді оның не екенін және оны немен жейтінін егжей-тегжейлі қарастырайық. Сонымен, әдіс декларациялары jdoc әрбір Joomla үлгісінде бар және осы немесе басқа ақпаратты үлгінің негізгі бөлігінде (яғни сайт бетінде) көрсету. Жалпы, әдіс декларациясы келесідей көрінеді:

Бұл жол сайттағы құрамдас бөліктерден ақпаратты көрсетеді, мысалы, com_content мақалалары. Шығару элементтерінің түрі атрибутта көрсетілген.

1. тип – шығыс элементтерінің түрлері.

  • құрамдас- жоғарыда жазғанымдай, беттің негізгі мазмұнын көрсетеді. Әр шаблонға тек бір рет шақыруға болады.
  • бас- сонымен қатар ашылу тегінен кейін бір рет жарияланады . Стильдерді, сценарийлерді көрсету үшін қызмет етеді, және ағымдағы беттің метадеректері.</li><li><i>хабар</i><i>- </i>жүйелік хабарламаларды көрсетеді. Құжаттың мәтінінде бір рет жарияланады.</li><li><i>орнату</i>- ештеңе көрсетпейді және орнатуға арналған «нұсқаулық» болып табылады.</li><li><i>модуль -</i>бетте бір модульді көрсетеді. Жарнамалар саны шектеусіз.</li><li><i>модульдер</i>- алдыңғы түріне қарағанда, ол өз орнында бірнеше модульдер санын көрсетуге мүмкіндік береді.</li> </ul><p>Тізімде көрсетілген алғашқы төрт түр үшін оларды бетте көрсету керек. Модуль типі жағдайында тапсырма біршама күрделене түседі. Модульді бетте көрсету үшін алдымен оған модуль жасау керек <b>модульдік позиция</b>бірегей идентификатормен (модуль позициясының атауы). Бұл name="позиция атауы" атрибуты және жолды міндетті түрде қосу арқылы орындалады:</p><p> <position>лауазым атауы</position> templateDetails.xml файлына. templateDetails.xml ішіндегі позицияның атын сипаттау арқылы біз оны жүйеде белгілейміз және оны модуль менеджерінде көреміз. Позициялардың атаулары ерікті болуы мүмкін, дегенмен name = "user3" позициясы әдепкі бойынша жоғарғы мәзірді көрсету үшін пайдаланылады.</p><p><b>2. style – шығыс стилінің сипаттамасы (mod chrome).</b></p> <p>Модуль қабығының сыртқы түрі мен құрылымы көрсетілген стильге байланысты. ұқсайды</p><p> :<jdoc:include type="modules" name="user1" style="xhtml" />Әдепкі бойынша, модуль шығысының бірнеше стильдері бар:</p><ul><li><i>xhtml -</i>модульді modChrome_xhtml($module, &$params, &$attribs) тақырып функциясы бар блокта көрсетеді. <br>{<br>егер (!бос ($модуль->мазмұн)) : ?> <br> <div class="moduletable<?php echo htmlspecialchars($params->get("moduleclass_sfx")); ?>>"> <br> <?php if ($module->шоу тақырыбы != 0) : ?> <br> <h3><?php echo $module->тақырып; ?></h3><br> <?php endif; ?><br> <?php echo $module->мазмұны; ?> <br> </div><br> <?php endif;<br>}</li><li><i>кесте -</i>модульді кесте құрылымының орналасуында көрсетеді <br>modChrome_table функциясы($модуль, &$парамдар, &$аттрибтер) <br>{ ?><br> <table cellpadding="0" cellspacing="0" class="moduletable<?php echo htmlspecialchars($params->get("moduleclass_sfx")); ?>>"> <br> <?php if ($module->шоу тақырыбы != 0) : ?> <br> <tr><br> <th><br> <?php echo $module->тақырып; ?> <br> </th><br> </tr><br> <?php endif; ?><br> <tr><br> <td><br> <?php echo $module->мазмұны; ?> <br> </td><br> </tr><br> </table><br> <?php<br>}</li><li><i>хорз -</i>кесте ұяшығындағы модульдің мазмұнын көрсетеді, көлденең функция 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>дөңгелектенген</i>- модульді графикалық жиектер (мысалы, дөңгелектелген бұрыштар) түрінде күрделі сәндеу үшін бірнеше кірістірілген блоктарда көрсетеді 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->шоу тақырыбы != 0) : ?> <br> <h3><?php echo $module->тақырып; ?></h3><br> <?php endif; ?><br> <?php echo $module->мазмұны; ?> <br> </div><br> </div><br> </div><br> </div><br> <?php<br>}</li><li><i>контур</i>- modChrome_outline($module, &$params, &$attribs) модуль блогының функциясына алдын ала орнатылған CSS мәнерлерін қосады. <br>{<br>статикалық $css=false; <br>егер (!$css) <br> {<br>$css=true; <br>jimport("joomla.environment.browser"); <br>$doc = JFactory::getDocument(); <br>$браузер = JBrowser::getInstance(); <br>$doc->addStyleDeclaration(".mod-preview-info ( толтыру: 2px 4px 2px 4px; жиек: 1px тұтас қара; орны: абсолютті; фондық түс: ақ; түс: қызыл;)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper ( background-color:#eee; жиек: 1px нүктелі қара; түс:#700;)"); <br>егер ($browser->getBrowser()=="msie") <br> {<br>егер ($browser->getMajor()<= 7) {<br>$doc->addStyleDeclaration(".mod-preview-info (сүзгі: альфа(мөлдірлік=80);)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (сүзгі: альфа(мөлдірлік=50);)"); <br> } <br>басқа( <br>$doc->addStyleDeclaration(".mod-preview-info (-ms-сүзгісі: альфа(мөлдірлік=80);)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (-ms-сүзгі: альфа(мөлдірлік=50);)"); <br> } <br> } <br>басқа <br> {<br>$doc->addStyleDeclaration(".mod-preview-info (мөлдірлік: 0,8;)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (мөлдірлік: 0,5;)"); <br> } <br> } <br> ?><br> <div class="mod-preview"><br> <div class="mod-preview-info"><?php echo $module->позиция."[".$module->стиль."]"; ?></div><br> <div class="mod-preview-wrapper"><br> <?php echo $module->мазмұны; ?> <br> </div><br> </div><br> <?php<br>}</li><li><i>жоқ</i>- мүлде көрсетілмеген стильге ұқсас. Дизайн және тақырып функциясы жоқ модульді көрсетеді modChrome_none($module, &$params, &$attribs) <br>{<br>echo $module->мазмұн; <br>}</li> </ul><p>Барлық алдын ала орнатылған мәнерлер templates/system/html/modules.php файлында орналасқан. Бірақ біз тек ұсынылған опцияларды пайдаланумен шектелмейміз, бірақ біз өзімізді жасай аламыз.</p> <p><b>3. Арнаулы хром режимін жасаңыз.</b></p> <p><b><br></b>Осылайша, берілген әдепкі модульді көрсету түрлері ағымдағы талаптарға сәйкес келмейді. Сіз өзіңіздің дизайн стиліңізді қосуыңыз керек. Мысал ретінде өте жиі қайталанатын жағдайды таңдайық. Тапсырмаға сәйкес, орнына <h3>модуль тақырыбын тегке қойыңыз <span>, ол семантикалық тұрғыдан бейтарап. Сондай-ақ, модуль мазмұны блогын бөлек орналастыру керек <div>. Модуль шығару стилін жасау үшін біз стандартты құралдарды қолданамыз. Joomla үлгілерінің көпшілігінде үлгілеу деп аталатын html/ қалтасы (үлгілер/үлгі атауы/html/) бар. Яғни, модуль үлгісін осы қалтаға көшірсеңіз, modules/my_module/tmpl/default каталогындағы үлгінің орнына templates/template name/html/my_modules/default файлы шығады. Құрамдас бөліктер дәл осылай шаблондармен құрастырылған. Ыңғайлы және практикалық. Үлгіңіздің html/ қалтасында modules.php файлын жасаңыз. Үлгіде мұндай қалта жоқ болса, біз оны жасаймыз. Оны файлға жазайық</p><p> <?php<br>modChrome_modbox функциясы($модуль, &$парамдар, &$атрибелер) // Функцияны шақыру <br>{<br>if (!empty ($module->content)): /* Орында қосылған модуль бар-жоғын тексеріңіз */?> <br> <div class="moduletable<?php echo htmlspecialchars($params->get("moduleclass_sfx")); /* модуль класының css жұрнағын көрсету */ ?>"> <br> <?php if ($module->showtitle != 0) : /* модуль тақырыбының қосылғанын тексеріңіз */ ?> <br> <span class="title"><?php echo $module->тақырып; /* Тақырыпты басып шығару */ ?></span><br> <?php endif; ?><br> <div class="modcontent"><br> <?php echo $module->мазмұны; /* Модульдің мазмұнын шығару */ ?> <br> </div><br> </div><br> <?php endif;<br>} <br>?> Дайын. Енді оны шығыс стилі ретінде көрсету керек. <jdoc:include type="modules" name="user1" style="modbox"/>Біз өз позициямызға модуль тағайындаймыз және нәтижеге қараймыз.</p> <p>РНР-дің тамаша қасиеттерінің бірі - оның HTML пішіндерімен жұмыс істеу тәсілі. Мұнда ең бастысы - әрбір пішін элементі сіздің PHP бағдарламаларыңызға автоматты түрде қолжетімді болады. PHP-де пішіндерді пайдалану туралы толық ақпарат алу үшін бөлімді оқыңыз. Міне мысал HTML пішіні:</p> <p><b>Мысал №1 Ең қарапайым HTML пішіні</b></p> <p><form action="action.php" method="post"> <p>Сіздің атыңыз: <input type="text" name="name" /></p> <p>Сіздің жасыңыз: <input type="text" name="age" /></p> <p><input type="submit" /></p> </form></p> <p>Бұл пішінде ерекше ештеңе жоқ. Бұл арнайы тегтері жоқ кәдімгі HTML пішіні. Пайдаланушы пішінді толтырып, жіберу түймесін басқанда action.php беті шақырылады. Бұл файлда келесідей нәрсе болуы мүмкін:</p> <p><b>№2 мысал Пішін деректерін көрсету</b></p> <p>Сәлеметсіз бе,<?php echo htmlspecialchars ($_POST [ "name" ]); ?> .<br>Сізге<?php echo (int) $_POST [ "age" ]; ?>жылдар.</p> <p>Бұл бағдарламаның мысалы шығарылымы:</p> <p>Сәлем, Сергей. Сіз 30 жастасыз.</p> <p>Егер сіз код бөліктерін ескермесеңіз <span>htmlspecialchars()</span>Және <i>(int)</i>, осы кодтың жұмыс принципі қарапайым және түсінікті болуы керек. <span>htmlspecialchars()</span>Зиянды HTML немесе Javascript сіздің парағыңызға кірістірілмеуі үшін «арнайы» HTML таңбаларының дұрыс кодталғанын қамтамасыз етеді. Біз білетін жас өрісі сан болуы керек, оны жай түрлендіруге болады <span>бүтін сан</span>, ол қажетсіз таңбалардан автоматты түрде құтылады. PHP мұны сүзгі кеңейтімі арқылы автоматты түрде де жасай алады. $_POST["name"] және $_POST["age"] айнымалылары сізге PHP арқылы автоматты түрде орнатылады. Бұрын біз $_SERVER суперглобалдық айнымалысын пайдаландық, бірақ мұнда біз сонымен қатар барлық POST деректерін қамтитын $_POST суперглобальды айнымалысын қолданамыз. байқа, бұл <i>жіберу әдісі</i>Пішініміздің (әдісі) POST. Егер біз әдісті қолдансақ <i>АЛУ</i>, онда біздің пішін ақпаратымыз $_GET суперглобалдық айнымалысында болады. Сонымен қатар, деректер көзі маңызды болмаса, $_REQUEST айнымалы мәнін пайдалануға болады. Бұл айнымалы GET, POST, COOKIE деректерінің қоспасын қамтиды.</p> <p><b>15 жыл бұрын</b></p> <p>HTTP спецификациясына сәйкес, пішінді сервер соңында бір нәрсенің күйін өзгерту үшін пайдаланған кезде POST әдісін пайдалану керек. Мысалы, бетте пайдаланушыларға өз пікірлерін қосуға мүмкіндік беретін пішін болса, осы сияқты бетте POST қолдануы керек. Егер сіз POST арқылы жеткен бетте "Қайта жүктеу" немесе "Жаңарту" түймесін бассаңыз, бұл әрдайым дерлік қате -- бір пікірді екі рет жарияламауыңыз керек -- сондықтан бұл беттер бетбелгіленбейді немесе кэштелмейді.</p><p>Пішін серверден бірдеңе алып, ештеңені өзгертпесе, GET әдісін пайдалану керек. Мысалы, іздеу жүйесіне арналған пішін GET пайдалануы керек, өйткені веб-сайтты іздеу клиентті қызықтыруы мүмкін ештеңені өзгертпеуі керек және іздеу жүйесі сұрауының нәтижелерін бетбелгілеу немесе кэштеу бетбелгі қою немесе кэштеу сияқты пайдалы. статикалық HTML беті.</p> <p><b>2 жыл бұрын</b></p> <p>Түсіндіруге тұрарлық:</p><p>POST GET қарағанда қауіпсіз емес.</p><p>GET және POST таңдау себептері әртүрлі факторларды қамтиды, мысалы, сұраудың мақсаты (ақпаратты «жіберіп жатырсыз ба?»), сұраудың өлшемі (URL мекенжайының ұзақтығына шектеулер бар және GET параметрлері жіберіледі. URL мекенжайы) және әрекеттің ортақ болуын қалайсыз -- Мысалы, Google іздеулері GET болып табылады, себебі ол URL мекенжайын ортақ пайдалану арқылы іздеу сұрауын көшіруді және басқа біреумен бөлісуді жеңілдетеді.</p><p>Қауіпсіздік бұл жерде қарастырылатын мәселе, себебі GET POST-қа қарағанда бөлісу оңайырақ. Мысал: GET арқылы құпия сөзді жіберуді қаламайсыз, себебі пайдаланушы нәтиже URL мекенжайын бөлісіп, оның құпия сөзін байқаусызда ашуы мүмкін.</p><p>Дегенмен, желі қосылымының өзін қорғау үшін TLS/SSL қолданбасаңыз, GET және POST-ты жақсы орналастырылған зиянды адам ұстап алу бірдей оңай.</p><p>HTTP арқылы жіберілген барлық пішіндер (әдетте 80 порт) қауіпті және бүгінде (2017), жалпыға қолжетімді веб-сайттың HTTPS (негізінен HTTP + транспорттық деңгей қауіпсіздігі) пайдаланбауының жақсы себептері көп емес.</p><p>Бонус ретінде, егер сіз TLS пайдалансаңыз, пайдаланушылар трафикке сіз енгізбеген кодты (AD) алу қаупін азайтасыз.</p> <p>Бұл PHP класының жалпы осалдығы. Бірақ мен аудит жүргізген адам бұл осалдықты пайдалануға болмайтынын, сондықтан ол есепке алынбайтынын айтты. Мен онымен айтысуға тура келді</p> <h2>РНР дегеніміз не</h2> <p>Осы осалдық бойынша шағын білім беру бағдарламасын жүргізейік. PHP-include - бұл ерікті файлды «қосуға» мүмкіндік беретін осалдық, мысалы, мына код:</p> <p>$module=$_REQUEST["модуль"]; include("modules/".$модуль);</p> <p>«/etc/passwd» файлында әдетте PHP тегтері болмағандықтан (<?php и?>), содан кейін ол html коды кәдімгі PHP сценарийінде PHP тегтерінің артында көрсетілетін сияқты браузерде көрсетіледі. Әрине, файлдарды оқу - бұл шабуылдың ықтимал іске асыруларының бірі ғана. Ең бастысы - қажетті PHP коды бар қажетті файлдарды қосу.</p> <p>Мысалға қайта оралайық. Оны күрделендіріп көрейік:</p> <p>$module=$_REQUEST["модуль"]; 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 = $_REQUEST [ "модуль" ] ;</p><p>қамтиды («модульдер/» . $модуль . «/module.class.php» );</p> </td> </tr></table><p>Көріп отырғаныңыздай, енді айнымалыға соңында жол қосылды, ол бізге кез келген файлды қосуға кедергі жасайды. Сонымен, көптеген РНР функциялары екілік қауіпсіз емес, яғни мұндай функциялар NULL байтты жолдың соңы деп есептейді. Біз сценарийге келесідей қол жеткіземіз:</p> <p>script.php?module=../../../../../../../../../../../etc/passwd%00</p> <p>Егер magic_quotes директивасы өшірілсе, біз /etc/passwd мазмұнын қайтадан көреміз.</p> <h2>Осалдық бар ма?</h2> <p>Біздің кодымызға оралайық:</p> <p>$module=addslashes($_REQUEST["модуль"]); 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 = қиғаш сызықтарды қосады ($_REQUEST [ "модуль" ] );</p><p>қамтиды («модульдер/» . $модуль . «/module.class.php» );</p> </td> </tr></table><p>Көріп отырғаныңыздай, біздің айнымалы «қосқыштар» арқылы өтуге мәжбүр және егер біз NULL байтты қолдануға тырыссақ, ол «\0» түрлендіріледі және қосу жұмыс істемейді.</p> <p>Бірақ прогресс бір орында тұрмайды! Кейбір USH жігіттері PHP-де қызықты мүмкіндікті тапқан екен: PHP файлдық жүйесінің шабуыл векторлары (ағылшынша). Мақаланың мазмұнын қысқаша қорытындылау үшін php бірнеше мүмкіндіктерді пайдаланып жолдарды өңдейді:</p> <ul><li><b>Жолды қысқарту</b>- php жол жолын көрсетілген MAXPATHLEN ұзындығына қысқартады (Windows жүйесінде 270 таңбаға дейін, NIX жүйесінде - әдетте 4096, BSD-де - әдетте 1024)</li> <li><b>Жолды қалыпқа келтіру</b>— php қосымша «/» және «/» таңбаларын алып тастап, жолды ерекше түрде өңдейді. және олардың әртүрлі комбинациясы</li> <li><b>Канондық пішінге келтіру</b>— қажетсіз ауысулар жойылады, мысалы, «dir1/dir2/../dir3» «dir1/dir3/» түрлендіріледі, бұл ретте «dir2» каталогының бар-жоғы тексерілмейді және басқа ұқсас түрлендірулер (яғни, қалыпқа келтіруді жалғастыру). )</li> </ul><p>Енді, ретімен, өткен жолға не болады:</p> <ol><li>Егер жол салыстырмалы болса, алдымен include_path директиваның мәндері ауыстырылады</li> <li>Содан кейін жол платформаға байланысты белгілі бір ұзындыққа дейін кесіледі</li> <li>Жол қалыпқа келтірілуде</li> <li>Жол канондық пішінге дейін қысқарады</li> </ol><p>Енді осыны қолдануға тырысайық. «modules/» каталогында орналасқан белгілі бір «test.php» файлын қосып көрейік. Ол үшін соңына «/.» белгісін қосыңыз. осылайша жалпы ұзындық файл атымен және include_path мәнімен бірге 4096 таңбадан көп болатыны анық. <br>script.php?module=test.php/././.[...]/././.</p> <p>Бұл жағдайда бүкіл жол жолы (қазірдің өзінде кесілген) қиғаш сызықпен емес, нүктемен (маңызды!) аяқталатындай етіп болжау керек. Мұны істеу үшін келесідей бір қиғаш сызық қосуға болады: <br></p> <p>Және осы нұсқалардың бірі міндетті түрде жұмыс істейді.</p> <h2>Талдау</h2> <p>Жолда қандай өзгерістер болатынын ретімен қарастырайық <br>modules/test.php//././.[...]/./././module.class.php <br><i>4200 таңба</i> </p> <p>Жолда болатын бірінші нәрсе, оған include_path мәні қосылады: <br>/home/site/public_html/modules/test.php//././.[...]/./././module.class.php <br><i>4223 таңба</i> </p> <p>Содан кейін жол MAXPATHLEN-ге қысқартылады (айталық 4096): <br>/home/site/public_html/modules/test.php//././.[...]/./. <br><i>4096 таңба</i> </p> <p>Мұнда сіз тағы бір қиғаш сызық қосудың не үшін қажет болғанын көре аласыз (әйтпесе сызық қиғаш сызыққа кесілген болар еді). Енді бұл сызық қалыпқа келтірілді, алдымен қосымша қиғаш сызықтарды алып тастаңыз: <br>/home/site/public_html/modules/test.php/././.[...]/./. <br><i>4095 таңба</i> </p> <p>Нәтижесінде біз қажетті файлға дұрыс жолды аламыз және бұл жол қазірдің өзінде қосуға ауыстырылады және бізге қажет файл қосылады.</p> <p>Яғни, осылайша біз «test.php» файлымызды сәтті қосамыз. <br>script.php?module=test.php//././.[...]/././.</p> <p>Бұл осалдықтың теориялық емес екенін білдіреді. Нәтижесінде менің клиентім бәс тігуден ұтылды, мен бәс тігуден және біз бәс тіккен 10 рубльді ұтып алдым. Әрине, 10 рубльден басқа, мен де клиенттің көз алдында сенім мен құрметке ие болдым, бұл да маңызды.</p> <h2>Ескертпелер</h2> <p>Мұнда мен осы осалдықты пайдаланудың бірнеше қызықты ерекшеліктерін қарастырамын.</p> <h3>Каталогтан шығу</h3> <p>Бұл кодты қарастырыңыз:</p> <p> ) ; </p> <p>RFI пайдалану және қашықтағы серверден файлды қосу мүмкіндігін өткізіп жіберейік. Серверде “allow_url_include=OFF” делік.</p> <p>Төмендегі каталогтан файлды қосу қажет болған жағдайды қарастырайық: <br>script.php?module=../test.php/././.[...]/././.</p> <p>Мұндай сұрау файл табылмады сияқты қатені тудырады. Ал мұны айналып өту үшін біз оны былай атауымыз керек: <br>script.php?module=blabla/../../test.php/././.[...]/././.</p> <p>Мен жолдардың канонизациясын бекер айтқан жоқпын. Оның арқасында «blabla» каталогының болуы міндетті емес.</p> <h3>Қарапайым қиғаш сызықтарды қосу</h3> <p>Мұқият оқырман қалыпқа келтіру сипаттамасында қосымша қиғаш сызықтар «/» және қиғаш сызықтары бар нүктелер «/.» жойылатынын жазғанымды байқаған шығармын, сондықтан соңында нүктемен аяқталатын қажетсіз қиындықтарды болдырмау үшін неге қиғаш сызықтарды қолданбасқа.</p> <p>Мұның бәрі алгоритмдер туралы, яғни «/» нүктесі бар қиғаш сызық. толығымен жойылады. Бірақ қарапайым қиғаш сызықтармен жағдай біршама күрделене түседі; қалыпқа келтіру кезінде бір (!) қиғаш сызық қалғанша әрбір екі қиғаш сызық біреумен ауыстырылады, мысалы:</p><p>/home/site/public_html/modules/test.php////////////////// <br><i>57 таңба</i> <br> ↓<br>/home/site/public_html/modules/test.php///////// <br><i>48 таңба</i> <br> ↓<br>/home/site/public_html/modules/test.php///// <br><i>44 таңба</i> <br> ↓<br>/home/site/public_html/modules/test.php/// <br><i>42 таңба</i> <br> ↓<br>/home/site/public_html/modules/test.php// <br><i>41 таңба</i> <br> ↓<br>/home/site/public_html/modules/test.php/ <br><i>40 таңба</i> </p> <h3><b>Шағын ауытқу:</b></h3> <p>Сонымен қатар, егер сіз көптеген танымал хакерлік ресурстарға назар аударсаңыз, сіз бұл қатені байқайсыз. Менің түсінуімше, бұл қате белгілі бір Raz0r мақаласынан басталды, онда ол векторды ұсынды: <br>index.php?act=../../../../../etc/passwd/////[…]/////</p> <p>Тіпті журналға да назар аударыңыз ][акер өз мақаласында бұл қатені қайталады. Оның үстіне, USH-тың түпнұсқа мақаласында жай қиғаш сызықтарды пайдалану ұсынылмайтыны және қалыпқа келтірмес бұрын соңында нүкте белгісін қалдыру қажет екендігі анық жазылған. Бірақ қарапайым қиғаш сызықтар (соңында нүкте болмаса да) тек Сухосинмен PHP тілінде жұмыс істейді.</p> <p>Яғни, «/» нүктесі бар қиғаш сызықты пайдаланыңыз. - әмбебап әдіс, өйткені «/» қиғаш сызықтарынан айырмашылығы ол php тілінің барлық нұсқаларында жұмыс істейді.</p> <h2>Қорытынды</h2> <p>Бұл мақала сценарийлеріңізде ең кішкентай осалдықтарды қалдырмау керектігін түсінуге көмектеседі деп үміттенемін, өйткені ерте ме, кеш пе олар үшін өзіңіздің шабуыл векторын жасай аласыз, бұл ауыр зардаптарға әкелуі мүмкін.</p> <p>Em элементі екпінмен мәтін үзіндісін білдіреді. Сіз оны оқырманның назарын сөйлемнің немесе абзацтың мағынасына аудару үшін пайдалана аласыз. Мен сізге em элементін сипаттайтын белгісінен кейін бұл нені білдіретінін айтамын.</p><blockquote><b>8-6 кесте:</b> em элементі</blockquote><blockquote><b>8-3-сурет:</b> em элементін пайдалану</blockquote><p>Бұл мысалда мен сөйлемнің басында I (I) белгісіне екпін қойдым. Егер біз em элементі туралы ойласақ, сөйлемді дауыстап айтқанда, біз сөйлемнің сұраққа жауап екенін қарастырамыз. Мысалы, мен: «Алма мен апельсинді кім жақсы көреді?» деп сұрадым деп елестетіп көріңізші. Сіздің жауабыңыз: «Маған алма мен апельсин ұнайды». (Мұны дауыстап айтып, мен екпін бергенде, сіз осы жемістерді жақсы көретін адам екеніңізді түсінесіз).</p><p>Бірақ мен: «Сізге алма ұнай ма және тағы не?» деп сұрасам. Сіз: «Маған алма мен апельсин ұнайды» деп жауап бере аласыз. Бұл жағдайда апельсиндердің сізге ұнайтын тағы бір жеміс екенін баса көрсететін соңғы сөзге баса назар аударылады. HTML тіліндегі бұл опция келесідей болады:</p><p>Маған алма және <b><em> </b>апельсиндер <b></em> </b>.</p><h3>Шетелдік сөздер мен техникалық терминдердің анықтамасы</h3><p>i элементі қоршаған мазмұннан басқа сипаттағы мәтін бөлігін білдіреді. Бұл өте анық емес анықтама, бірақ жалпы мысалдар басқа тілдерден алынған сөздерді, техникалық немесе ғылыми терминдерді, тіпті адам ойларын (сөйлеуге қарсы) қамтиды. i элементі сипатталған.</p><blockquote><b>8-7 кесте:</b> i элементі</blockquote><blockquote><b>8-5-сурет:</b> s элементін пайдалану</blockquote><br><img src='https://i2.wp.com/storage.smarly.net/html5/8.5.png' width="100%" loading=lazy loading=lazy><h3>Маңызды мәтінді анықтау</h3><p>Күшті элемент маңызды мәтін үзіндісін білдіреді. Бұл элемент сипатталған.</p><blockquote><b>8-9 кесте:</b>Күшті элемент</blockquote><blockquote><b>8-7-сурет:</b> u элементін пайдалану</blockquote><br><img src='https://i1.wp.com/storage.smarly.net/html5/8.7.png' width="100%" loading=lazy loading=lazy><h3>Шағын шрифт қосу</h3><p>Кіші элемент шағын шрифтті білдіреді және көбінесе біліктілік пен нақтылау үшін пайдаланылады. B шағын элементті білдіреді.</p><blockquote><b>8-11 кесте:</b>шағын элемент</blockquote><blockquote><b>8-8-сурет:</b>Шағын элементті пайдалану</blockquote><br><img src='https://i1.wp.com/storage.smarly.net/html5/8.8.png' width="100%" loading=lazy loading=lazy><h3>Үстіңгі және төменгі таңбаны қосу</h3><p>Сәйкесінше үстіңгі және төменгі индексті белгілеу үшін sub және sup элементтерін пайдалануға болады. Кейбір тілдердегі сөздерді жазу үшін үстіңгі таңбалар қолданылады, ал қарапайым математикалық өрнектерде үстіңгі және төменгі индекстер қолданылады. Бұл элементтер ішінде ұсынылған.</p><blockquote><b>8-12 кесте:</b>Ішкі және қосымша элементтер</blockquote><blockquote><b>8-9 сурет:</b> Sub және sup элементтерін пайдалану</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">Санаттағы танымал:</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="Компьютерде караоке клипін қалай жасауға болады?"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Компьютерде караоке клипін қалай жасауға болады?</div> <a href="https://5visa.ru/kk/at/sozdanie-karaoke-svoimi-rukami-kak-sozdat-karaoke-klip-na-kompyutere-eto.html" rel="bookmark" title="Компьютерде караоке клипін қалай жасауға болады?">оқыңыз</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="Ойын үшін Origin қолданбасы қажет, бірақ ол орнатылмаған. FIFA 16 үшін Origin қажет."/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Origin қолданбасы ойнау үшін қажет, бірақ ол FIFA орнатылмаған...</div> <a href="https://5visa.ru/kk/multimedia/prilozhenie-origin-neobhodimo-dlya-igry-no-ono-ne-ustanovleno-prilozhenie-origin.html" rel="bookmark" title="Ойын үшін Origin қолданбасы қажет, бірақ ол орнатылмаған. FIFA 16 үшін Origin қажет.">оқыңыз</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 әлеуметтік желісіндегі жеке парақшаны тіркеу"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Facebook әлеуметтік желісіндегі жеке парақшаны тіркеу</div> <a href="https://5visa.ru/kk/multimedia/zaregistrirovat-dve-stranicy-facebook-na-odin-nomer-registraciya-lichnoi.html" rel="bookmark" title="Facebook әлеуметтік желісіндегі жеке парақшаны тіркеу">оқыңыз</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="Қарапайым Nmap Nmap сканерін қалай іске қосу керек"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Қарапайым Nmap Nmap сканерін қалай іске қосу керек</div> <a href="https://5visa.ru/kk/installation-and-configuration/setevoi-skaner-nmap-i-ego-vozmozhnosti-kak-zapustit-prostoe-skanirovanie.html" rel="bookmark" title="Қарапайым Nmap Nmap сканерін қалай іске қосу керек">оқыңыз</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">Соңғы мақалалар</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">Суретті бірнеше градусқа қалай бұруға болады...</div> <div class="clr"></div> <a href="https://5visa.ru/kk/internet/kak-povernut-izobrazhenie-v-vorde-i-eshche-neskolko-priemov.html">оқыңыз</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">Яндекс браузерінде жарнаманы өшіру Қайда...</div> <div class="clr"></div> <a href="https://5visa.ru/kk/tips/kak-otklyuchit-blokirovku-reklamy-v-brauzere-yandeks-otklyuchenie-reklamy-v-yandeks.html">оқыңыз</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 қосылымындағы ақаулықтарды жою...</div> <div class="clr"></div> <a href="https://5visa.ru/kk/problems/shlyuz-ustanovlennyi-po-umolchaniyu-ne-dostupen-ustranenie-problem-s-wi-fi.html">оқыңыз</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 профиліндегі құпия сөзді өзгертіңіз</div> <div class="clr"></div> <a href="https://5visa.ru/kk/education/pomenyat-parol-na-profile-vindovs-10.html">оқыңыз</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">Сымсыз маршрутизаторларды орнату нұсқаулары...</div> <div class="clr"></div> <a href="https://5visa.ru/kk/at/pravilnaya-nastroika-wi-fi-routera-asus-rt-g32-instrukciya-po-nastroike.html">оқыңыз</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">Қатты дискіні қалай таңдауға болады және қайсысын сатып алған дұрыс...</div> <div class="clr"></div> <a href="https://5visa.ru/kk/multimedia/kakaya-skorost-zhestkogo-diska-horoshaya-kak-vybrat-zhestkii-disk-i.html">оқыңыз</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">Манекендерге арналған Meizu. Қоңыраулар мен мекенжайлар кітабы....</div> <div class="clr"></div> <a href="https://5visa.ru/kk/internet/meizu-dlya-chainikov-zvonki-i-adresnaya-kniga-storonnie-prilozheniya-dlya.html">оқыңыз</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 бағдарламасын жүктеп алыңыз</div> <div class="clr"></div> <a href="https://5visa.ru/kk/program/smotret-pdf-faily-skachat-programmu-pdfmaster.html">оқыңыз</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>Ғаламтор. Мультимедиа. Навигатор. Білім. BY. Микробағдарлама. Бағдарламалар. кеңес беру. Орнату</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="">Жоба басылымы</a></li> <li><a href="">Сайттағы жарнама</a></li> </ul> <ul> <li><a href="https://5visa.ru/kk/feedback.html">Контактілер</a></li> <li><a href="https://5visa.ru/kk/sitemap.xml">Сайт картасы</a></li> </ul> </div> </div> </div> <div class="copyright">© 2023 Интернет. Мультимедиа. Навигатор. Білім. BY. Микробағдарлама. Бағдарламалар. кеңес беру. Орнату</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="Жоғарыға жылжытыңыз">Жоғарғы</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>