После года разработки опубликован выпуск проекта Snuffleupagus 0.5.1, предоставляющего модуль к интерпретатору PHP7 для повышения безопасности окружения и блокирования типовых ошибок, приводящих к появлению уязвимостей в выполняемых PHP-приложениях. Модуль также позволяет создавать виртуальные патчи для устранения конкретных проблем без изменения исходных текстов уязвимого приложения, что удобно для применения в системах массового хостинга, на которых невозможно добиться поддержания всех пользовательских приложений в актуальном виде. Накладные расходы от работы модуля оцениваются как минимальные. Модуль написан на языке Си, подключается в форме разделяемой библиотеки ("extension=snuffleupagus.so" в php.ini) и распространяется под лицензией LGPL 3.0...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=53211
Да проще поотрубать похапешникам руки)
Питонистам -- головы.
Явистам -- яйца.
Сишникам -- ноги (всё равно идти им некуда)
Дельфистам -- ... там уже и так всё отгнило
И т.д.
У меня вопрос: что отрубать хаскелистам?
Монады
Гонады.
>Модуль написан на языке Си, подключается в форме разделяемой библиотеки ("extension=snuffleupagus.so" в php.ini)А как же "сишные дырени" (c)?
> sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();Какой же упоротый синтаксис…
Как альтернативу, для блокирования уязвимостей в PHP-приложениях можно использовать программу /usr/bin/kill. Потому что PHP - это прежде всего сложившаяся культура программирования (вернее, ее полное отсутствие).
Уверен, у комментатора нет опыта разработки на PHP, но начитался статей с хабра 2012 года и теперь везде об этом пишет.
"2012 года" тут лишнее
Уверенность в том, чего не знаешь -- характерная черта защитников PHP.У меня есть опыт разработки на PHP в годах эдак 2010-2013. Вспоминаю как страшный сон все эти call_user_func_array(), любовь отечественных CMS к тухлому Zend Optimizer, неспособность обращаться к элементам возвращенного функцией массива по индексу и прочие приколюхи типа "headers already sent" из-за UTF-8 BOM. Может быть сейчас все это и неактуально, но осадочек остался навсегда.
Даже во втором пихоне все выглядело куда более-менее органично и последовательно.
Для современного кода неактуально (ну кроме BOM, а не надо так делать, это много где все сломает, тот же shebang).
Для легаси - понятно :)
Ну вот видишь, мои предположения подтвердились. Аргументы с 2012 года не обновились, как и знания о объекте осуждения, в отличие от языка. Типичный пример поливания грязью того, в чём не разбираешься
Язык с этих времён сильно изменился. Парсер, например, вообще переписали на AST. У вас какие-то воспоминания старого деда.
Добавили стическую типизацию?(спойлер: нет, и никода не будет. Пытаются конечно, но до нормальных языков как до китая) Мне вот интересно, phpшники вообще никаких других языков не пробывали? Каждый год говорят что язык стал лучше - но по факту он лучше только предыдущих версий php. И не лучше любого другого языка. Смысл вообще развивать язык который изначально писался вообще без какой-либо концепции, копируя другие языки и в итоге получилось уродское нечто? только потому что его нежно любят недоучки с синдромом утенка, которые всю жизнь на нем пишут?
Осторожно анон, это же русскоязычное it комьюнити. Здесь php любят как собственного ребенка. Уродливый, хромой, но такой родной. Никакие аргументы на этих людей не действуют, ведь они никогда не видели нормальных языков. Все что они видели - это еще более убогие версии php прошлых годов.
> Модуль также позволяет создавать виртуальные патчи для устранения конкретных проблем без изменения исходных текстов уязвимого приложения, что удобно для применения в системах массового хостинга, на которых невозможно добиться поддержания всех пользовательских приложений в актуальном видеАрхинужная вещь в мире победившего инфантилизма - чтобы можно было безнаказанно лажать и косячить, а кто-то автоматом подтирал бы за тобой лужи.
в основном безнаказанно лажают и косячат клиенты хостинга, ставящие пароли типа "admin" и "$названиесайта" в своих сраных вротпрессах, и потом кому-то приходится подтирать лужи за ними, и вытаскивать IP серверов из всевозможных блэклистов.
к сожалению, исправляющих тупость пользователей модули PHP ещё не изобрели.
Интернет сделал людей неравными, но Бобби Тейблз их уравнял.
Вот же она, вот - долгожданная кнопка "Сделать зашибись"!
Так победим.
очередной костыль, когда вдруг Suhosin (даже встроенного) оказалось недостаточно
А вы уверены что Suhosin еще существует?
разве suhosin7 забросили? признаюсь, не в курсе
> разве suhosin7 забросили? признаюсь, не в курсеДа и давно...
Народ пытается реинкарнировать но... для 7.(3|4) так до сих пор ничего и нет, хотя и в 7.(0|1|2) пробуксовка... он и в 5.6 уже практически был заброшен, оригинальный автор на сколько я знаю ударился в джейл брейки для айфонов... А жаль, хорошая была глушилка для exec, eval...
>> разве suhosin7 забросили? признаюсь, не в курсе
> Да и давно...
> Народ пытается реинкарнировать но... для 7.(3|4) так до сих пор ничего и
> нет, хотя и в 7.(0|1|2) пробуксовка... он и в 5.6 уже
> практически был заброшен, оригинальный автор на сколько я знаю ударился в
> джейл брейки для айфонов... А жаль, хорошая была глушилка для exec,
> eval...спасибо за информацию, я был не в курсе и без всякой значимой причины крайне наивно предполагал что этот модуль на каком-то этапе интегрировали непосредственно в PHP. мне это казалось логичным шагом развития
> предполагал что этот модуль на каком-то этапе интегрировали
> непосредственно в PHP. мне это казалось логичным шагом развитияК сожалению - нет...
Я мечтаю, когда подобные глушилки языка будут не только для пыха но и для WebAPI. (Был один для firefox-a но стух...)
сначала делают уязвимую хрень, потом делают хрень, которая блокирует уязвимости в уязвимой хрени. герои, чо.
А что, seccomp и контейнеры поюзать было не проще?
Кстати это добро завезли в NGINX Unit
Начинания Web application firewall одобряем.
Снуффлеупагус. Ё-моё! :О
ну сейчас на PHP в основном фрэймворки используют (laravel, symfony, yii2). Там обычно хорошая защита от дурака. Например используя ORM можно вообще не использовать SQL и соответственно SQL-injection отпадает как класс. Для вывода данных (если не GraphQL или REST) обычно используют шаблонизаторы, в которых детские болезни устранены. Есть отличный пакетный менеджер и PSR-стандарты. Это уже совершенно другой язык, и совершенно другая инфраструктура языка. И кроме того PHP-7 очень быстрый, по сравнению с предыдущими версиями. Так что в общем разрабатывать на современном PHP весьма комфортно, если конечно это не легаси-код 2012 года.
Кроме фантазий PHP Junior'а, тут не показывает картину рынка.