А дело в языке тоже...
PHPMyAdmin "для совместимости" эмулирует register_globals....
Зачем было _в_принципе_ эту гадость реализовывать в языке
непонятно.
>Интересный принцип - винить инстурмент, а не собственные руки и мозги...
А своими мозгами подумать слабо?
Методология анализа: берем различные языки программирования и серьезные проекты, созданные на них разными командами. И рассматриваем все это с точки зрения безопасности и надежности реализации.
На С существуют достаточно много генетически ущербных решений: sendmail, bind, fetchmail, etc. В них дыры были, есть и будут. На С, так же, есть много примеров очень безопасных программ: qmail, postfix, etc. Остюда вывод: безопасность решений на С целиком зависит от продуманности архитектуры решения и квалификации команды.
Аналогично на Java, Perl и так далее. В этих лагерях находим и дырявые поделия и образцово-показательные проекты.
Так же проанализировать PHP я не могу. Просто я не знаю НИ ОДНОГО проекта на РНР (самых разнообразных команд, как профессионалов, так и самодельщиков), который можно было бы отнести к разряду безопасных. В котором бы регулярно не обнаруживались одни и те же дыры. (Может кто подскажет?). Остсюда я делаю вывод: коли НИ ОДНА команда не может написать на этом языке нормального проекта, однозначно - язык виноват.
Единственный способ опровергнуть это - привести пример (хотя бы один) нормального безопасного проекта на РНР.
>Просто я не знаю НИ ОДНОГО проекта на РНР (самых разнообразных команд, как профессионалов, так и самодельщиков), который можно было бы отнести к разряду безопасных.
А как ты не видя код узнаешь безопасный он или нет? Сломать ты не сможешь и твои доводы значит - пустая брехня. Хороший код тебе просто никто не покажет На этом деньги делают. А программы типа PHPBB приводить не надо. Плохую программу можно написать на любом языке. Вы покажите хороший движок форума на Java. А на другом языке? Форумы на Perl без fastcgi работают медленнее чем форум на PHP. Так что альтернатив всё равно нет.
>А как ты не видя код узнаешь безопасный он или нет?
Что-бы понять, что яйцо тухлое, совсем не обязательно его есть.
Я каждый день получаю кучу рассылок из различных bugtraq. Так вот 90% уведомлений об уязвимостях - проекты на РНР. Для меня этого достаточно, что-бы понять - яйцо тухлое. А так как в этих уведомлениях часто фигурируют даже вполне профессиональные команды (phpMyAdmin, Mambo, etc), то я понимаю: ущербность, принципиальная невозможность создавать безопасный код - это свойство именно РНР.
А его еще кто-то использует?
По поводу споров о ПыхПыхе... я думаю, что серьезные разработчики которые умеют писать нормальный код, просто никогда не делают это на пыхпыхе. На пыхПыхе в принципе удобно делать только маленькие хоум пейджи... для серьезных enterprise проектов все равно нужно использовать к примеру java, хотябы по двум причинам:
1) За Java платят нормальные деньги (нормальный клиент платит хорошие деньги за хороший продукт над которым трудятся долгое время нормальные программисты)
2) Java сама по себе без напрягов позволяет создовать безопасные проекты. (отсутствие evalов и тому подобной туфты, присутствие класслоадеров и настройки системы на которой работает java)
бонус) Java это нормальный оо язык, в котором удобно писать красивые и не дырявые решения.
А вот еще... вы видили более геморойный язык чем ПыхПых для Админа??? пыхпых это адское создание которое админа повседневно сводит в гроб (нада работать с базой?? - собирай весь пыхпых с нужной либой (отдельно для мускуля, отдельно для посгри и для всех остальных), нужно тебе юзать регекспы?? - Собирай весь пыхпых с либами для регекспов... итп).
Например перл в этом плане нормальный язык.. так как перл расширяется модулями. А уж про Яву в данной ситуации вообще говорить не приходится ;)
В остальном, конечно я согласен с тем, что не бывает кривого языка... бывают кривые программисты. написать какашку можно одинакого хорошо и на пыхпыхе и на си. Разве, что только на Си мы получим сигфолт какой нибудь, а на ПыхПыхе получим уязвимость пхп иньекцией или типа того :)
у всех нормальных хостеров доступ защищен через .htaccess подключить файлы как я понял можно через ssi тут может быть облом в виде того что это возможно только в shtml. ;) Вобщем волноваться не стоит дырка не серьезная. :)
> Форумы на Perl без fastcgi работают медленнее чем форум на PHP.
А мужики-то не знают! (ц)
PHP уступает Perl-у в скорости исполнения 10-20кратно.
Тот уступает .NET и Java так же примерно.
> Так что альтернатив всё равно нет.
.net, java.
Даже в отнюдь не оптимальном Apache/Mono/mod_aspnet .net против пыхпыха манной небесной является.
А ведь ещё и структура языков иная! Нет в .NET языках (кстати, существует и Perl.NET и Delphi.NET) помойки с данными, склоннисти к переполнениям по недосмотру и т.д.
> Вы покажите хороший движок форума на Java.
Вы находитесь на одном из них.
>А вот еще... вы видили более геморойный язык чем ПыхПых для Админа??? Бред >пыхпых это адское создание которое админа повседневно сводит в гроб (нада работать с базой?? - собирай весь пыхпых с нужной либой (отдельно для мускуля, отдельно для посгри и для всех остальных), нужно тебе юзать регекспы?? - Собирай весь пыхпых с либами для регекспов... итп).
Мнение ламера.php собирается сразу со вмем перечисленным и перекомпиляция занимает несколько минут всего.
>Например перл в этом плане нормальный язык.. так как перл расширяется модулями. Perl с базами работает медленнее от того что там ООП
>А уж про Яву в данной ситуации вообще говорить не приходится ;)
Не говори. Java работает с базами медленно. Исключая ситуацию когда на сервере только 1 пролект. В реальной жизни на виртуальном хостинге это вообще неприемлемо
>>Я каждый день получаю кучу рассылок из различных bugtraq. Так вот 90% уведомлений об уязвимостях - проекты на РНР.
>Это говорит всего лишь о непопулярности ДРУГИХ языков
Хорошо. Я соглашусь с этим аргументом.
Но я говорил совсем о другом. Стандартная отговорка защитника РНР: "нет плохих инструментов - есть дурные руки". (Хотя, конечно аргумент спорный, но - пусть будет так). Тогда продемонстрируйте, плиз, хоть одну "некриворукую" команду РНР программистов, которые сделали более-менее серьезный проект, в котором за последний год не нашлось хотя бы одного XSS, SQL injecting или PHP including. (Только, "неуловимых Джо" не надо :-)
>А сколько ошибок находится регулярно в программах на С? Значит C - отстой.
Это упрямство, или тупость?
Хрен с ними, с ошибками в программах дилетантов. Продемонстрируйте пример "высшего пилотажа", "мастерского" безопасного кода на РНР. (На С надо приводить ссылки, или сами найдете?)
>Продемонстрируйте пример "высшего пилотажа", "мастерского" безопасного кода на РНР. (На С надо приводить ссылки, или сами найдете?)
Откуда я знаю! Я не читаю чужой код. А на С реально защищенных программ мало (popa3d/vsftpd например). В основном уровень программирования один (или даже хуже чем у большинства программистов на PHP).