Notice: Undefined index: id in /var/www/wbistnx/data/www/ufabist.ru/wp-content/pages/index.php on line 2
Используем PHP по назначению

Используем PHP по назначению

Язык программирования PHP берёт своё начало в 1995 году и является продуктом эпохи зарождения современных веб стандартов, таких как http (версия 1.0 — 1996), html (версия 2.0 — 1995), javascript (1995 год), url (1990 — 1994 года). Первоначально аббревиатура php имела расшифровку Personal Home Page Tools, далее трансформировавшись в Hypertext Preprocessor или «препроцессор гипертекста». Об использовании PHP в качестве препроцессора и будет посвящено несколько следующих абзацев. А изучить его вы можете в курсе PHP для начинающих.

Интерпретатор PHP позволяет вставлять в любой текст специальные тег <?php ?>, с помощью которого можно подставить в страницу динамический контент, что очень удобно использовать внутри html документов. Полученный результат сразу подаётся на стандартное устройство вывода, известное как stdout (подробнее смотри здесь). Есть возможность буферизовать вывод до востребованности через функцию ob_start, но для нашей первой html страницы это не понадобится. Самый последний стандарт html под номером 5 ввёл несколько новых тегов для упрощения разметки, повышения читаемости и семантичности веба (что бы это не значило). Поэтому сразу воспользуемся всей мощью HTML5 и напишем шаблон страницы со вставками на рассматриваемом препроцессоре.

В корне проекта добавим директорию pages/ и сохраним нашу статью под произвольным именем, например как 2018-trends.html.

Теперь нам нужен веб сервер для обработки входящих http запросов от пользователей, и сервер приложения для бизнес логики. Чтобы не плодить лишнии сущности напишем небольшую программу на языке программирования Go, которая будет выступать и в роли веб сервера, и содержать код блога. Для передачи пользовательских запросов из хостовой программы в препроцессор воспользуемся стандартным потоком ввода (stdin), для сериализации данных воспользуемся популярным форматом для сериализации данных — json.

Мы безнадежно влюблены в PHP, уже много лет способствуем его развитию и приглашаем всех интересующихся пообщаться и провести субботу с пользой в приятной обстановке. В программе четыре доклада и дискуссии за чашкой кофе, а в продолжение — afterparty. Для тех, кто не в Москве, будет трансляция, а также опубликуем записи выступлений.

Сегодня мы выпускаем обновления Yii для нескольких последних версий 2.0.x и официальных расширений поддержки нереляционных баз данных для исправления найденных уязвимостей. Патчи исправляют проблему в методах слоя ActiveRecord: findOne() и findAll(), которые могут допустить SQL инъекцию, если входящие данные не подготовлены должным образом.

Мы рассматриваем это как уязвимость в Yii потому что документация для этих методов не содержала явного предупреждения о том, что в некоторых случаях передача нефильтрованых пользовательских данных может быть опасной. Мы благодарим Analitic1983 (Habr, GitHub) за обнаружение этой уязвимости.