Добрый всем вечер. Озаботился такой проблемой. Нужно в цикле вывести кусок html с кодом php. Что то вроде этого. Кусок немного побольше, соответственно экранированных кавычек тоже. Удобство в том, что это решает поставленную задачу на все 100. Начитался об опасности этого способа. Так ли это? Надо ли пользоваться шаблонизаторами даже для таких небольших участков кода? PHP: <?php echo "<div class=\"\"> <div class=\"\"> <div class=\"\"> <div class=\"\"> <h3 class=\"\">".$var1."</h3> </div> <div class=\"\"> <img src=\"".$var2."\" class=\"\"> </div> <div class=\"\"> <p>".$var3."</p> </div> </div> </div> </div>"; Да, забыл написать. Переменные - это SELECT из БД.
А можешь нам рассказать про какие там опасности ты начитался в выводе html??? Вот те лайвхак, чтобы не морочиться с экранированиями, когда это нафиг не нужно: PHP: <?php echo '<div class=""> <div class=""> <div class=""> <div class=""> <h3 class="">'.$var1.'</h3> </div> <div class=""> <img src="'.$var2.'" class=""> </div> <div class=""> <p>'.$var3.'</p> </div> </div> </div> </div>'; --- Добавлено --- PHP сам по себе шаблонизатор. Для этого и создан.
Не надо такой большой кусок html выводить echo. Выключайте режим php, и пишите нормальный html-код, включая режим php или используя конструкцию <?= ?> для вывода переменных (начиная с версии 5.4 для этого не нужно включать короткие теги) PHP: <?php /* Какой-то код php */ ?> <div class=""> <div class=""> <div class=""> <div class=""> <h3 class=""><?= $var1; ?></h3> </div> <div class=""> <img src="<?= $var2; ?>'" class=""> Про опасность вы по ходу просто не поняли, и подразумевались XSS-атаки. Просто пропускайте все данные, которые ранее передал пользователь через https://secure.php.net/htmlspecialchars
@Netopyr да мы все знаем про это, давай уже расскажи тем, кто не знает ЗЫ: расскажи конкретнее, что ты имеешь в виду.
Блин. Забыл добавить, лайфак для дЭбилов Спасибо. Вышеуказанное XSS. На соседнем форуме нашел тему, где еще один новичок спрашивал подобный вопрос, а ему дружно все сказали ничего самом не трогать, а пользоваться только шаблонизаторами. Решил параллельно с ликбезом заниматься вопросами безопасности.
и всё? ага. отличный совет. нифига только не понятный почему и какими, т.е. по факту он не работает. Плюшка шаблонизатора в том, что он по-дефолту всё подряд экранирует. А что такое экранировать?
Как я понимаю, - чтобы зловредный скрипт не подсунуть в сервер, и чтобы он его не выполнил. Во - тема которую я смотрел. http://phpclub.ru/talk/threads/Вставка-html-в-шаблон-php.82644/
Дык не надо апач голой жопой в интернеты выставлять же. Проблема, как и статья, датируется 2008 годом, и не актуальна сегодня. Ставим перед папачем тот же нжинкс, и проблема решена. Все отработает максимально быстро, и скинет результат клиенту со скоростью локалки, потому что клиент у апача - нжинкс. А кому и как оный будет сливать ответ - уже его проблема. Он умеет это делать почти бесплатно. Уплачиваем оверхед на коммуникацию двух серверов, но, с другой стороны, получаем увеличение эффективности использования ресурсов за счет перекладывания проблемы медленного клиента на плечи легковесного решения.
ну допустим у нас есть чудо-функция которая прибивает слово script и в таком случае никогда никакой скрипт не попадёт на страницу. Можно считать проблему решённой?
Хмм, так то следует из этой логики- что и нужные вещи не интерпретируются. Или нет? Если избирательно, то мы решаем только один мнханизм внедрения, а есть куча доугих?! Чет меня совсем запутали!
Ящитаю в наше время так делать это быть откровенным уебаном, если конечно нету очень весомых оправданий на тему волшебных расширений апача или логики завязанной на хтацессах
Откровенным уебаном надо быть, чтобы крыть хуями без аргументации, батенька. Не надо так. Связка папачей + нжинкс работает быстрее, либо одинаково по скорости, по сравнению со связкой нжинкс+php_машина_на-фасте_или_как_прикрутишь_еще. При этом мы имеем доступ к волшебным расширениям апача и хтаццессам, да. По сути, нет разницы, куда нжинкс проскирует вызов - хоть на fpm, хоть апачу, хоть в параллельное измерение. Архитектура серверная при этом одинаковая в любом случае. Как не поверни, это все равно "пхп-сервер с реверс-прокси". Другое дело, что кто-то где-то когда-то слышал, на какой-то псевдоэлитной тусовке типа очередного срача на хабре, что апачи говно и пользоваться им - маргинальный акт. При этом, не вдаваясь в подробности, ухватывая только верхушку тезиса. Принимая его на веру как религиозный постулат, без проверок и сомнений. А на деле окажется, что не апачи говно, а выставлять апач наружу - моветон. Потому что: 1) Апач, отдающий все, включая статику, это ппц как накладно, особенно учитывая, что этой статики могут быть чертовы мегабайты картиночек, которые отдавать апачем ну совсем уж расточительно, учитывая, что он при этом раскочегаривает все, что у него есть, включая PHP-машину и кучу не нужных в данный момент модулей. 2) Апач очень не любит медленного клиента и может "зажевывать" отдачу. 3) Дочки апача выжираются долгими коннектами как нефиг делать. Положить сервер можно даже с телефона. Но все эти проблемы мгновенно решаются выставлением реверс-прокси. Чсх, когда просишь привести аргументы против апачи за реверс-проксей, то оппонент почему-то не знает, что сказать. Это уже потом хипстеры от IT превратили серверную архитектуру чуть ли не в религию, постулируя "надо отказаться ото всего, кроме минимального минимума!!1". А потом эти балбесы со слезками гуглят альтернативы папачевых модулей под нжинкс, трансляторы хтаццесов в нжиновые конфиги и тд. Как веганы, блин, гуглящие "чем заменить животные белки", но, при этом, искренне считающие себя травоядными, которым эти белки не впились. А вообще есть ультимативное решение - LiteSpeed server. Надо будет как-нибудь опробовать...
Летят в самолете ворона и волк. Ворона подзовет стюардессу, наорет, что та офца страшная… Потом попросит кофе и выливает его на стюардессу… Волк сидит, тихо завидует. А потом спрашивает у вороны, мол, можно и ему так же повыебываться. «Отчего же нет?! » – отвечает птица… Проходит 10 минут, стюардесса уже в истерике просит капитана самолета что-нибудь с хулиганами. Тот берет, и выбрасывает волка с вороной из самолета… Летят они, волк спрашивает: - Что дальше? Как приземляться будем? - У тебя крылья есть? – спрашивает ворона. - Нет! - Ну а хули ты выебывался?!