Идет заседание суда. Обвиняется муж-боксер в избиении жены. Судья говорит обвиняемого, изложите, пожалуйста, вашу версию произошедшего?
— Ну, захожу я на кухню, жена кушать готовит. Тут смотрю — а она открылась! Ну я и дал ей хук справа!..
Технически, у любого пользователя сети есть возможность запросить любой документ по HTTP, залогиться по ssh и ввести «rm -rf /». Таковы реалии. Не нравится — блокируйте порт ssh или еще как-то защищайтесь. Нравится — ладушки.
Зачем кто-то подключился к «тому же интернету» где был автор топика, если не хочет, чтобы автор топика запрашивал у него test.php? Автор ведь не подписывал никакие бумаги-дисклеймеры насчет «я не буду заходить на сайт a.com кроме как на главную страницу и по ссылкам с ней», а значит — вполне может как угодно тыкаться.
— Ну, захожу я на кухню, жена кушать готовит. Тут смотрю — а она блок немного опустила! Ну я и дал ей прямой левый!..
Да, голой задницей на улицу высовываться не стоит, точно пнут, но когда вы в силу своей квалификации умеете вскрывать входные двери, то срать в первом попавшемся доме весьма не обязательно.
Вы почему-то в примерах используете вторжение на чужую территорию (кулаком на территорию лица жены). Автор же ничего с другими серверами не делал. Он на _своем_ компьютере работал. А его провайдер решил его пакеты доставить дальше. А вышестоящий — тоже доставил их. И так далее. А потом дошло до какого-то сайта, и этот сайт _по своей воле_ принял их (скорее всего даже деньги своему хостеру заплатил чтобы прнимать их) и обработал.
Используя вашу аналогию — вы себе боксируете спокойно с грушей у себя дома, а всякие тут рожу свою подставляют. Или вы дома голый ходите, а люди через окошко заглядывают и обижаются сильно.
Представляете, купил человек компьютер с сетевой картой, является их 100% полноправным собственником, а ему запрещают определенные комбинации пакетов отправлять. Неправильно это. Он эти пакеты насильно никому не сует (в отличие от, скажем, пули из пистолета). Фильтруйте, выбирайте какие вам нравятся, их и слушайте. Или вообще пакеты с адреса 1.2.3.4 не принимайте — имеете право.
Если мы этот принцип нарушаем, тогда вроде как решаем одну мелкую проблему (ой, они угадали каталог my_homemade_porno и увидели чего не следует), зато создаем очень сложную — в мире миллионы сайтов, у каждого свои владельцы (которые подчас очень странные люди), и у каждого — свое представление о том что можно делать на их сайте, что нельзя. Я вот вообще не хочу чтобы на мою домашнюю страничку заходили девушки с маленькой грудью. По вашей теории, если я ее правильно понял — страничка моя, значит имею право. Но как ж теперь быть — письменные соглашения заключать с каждым сайтом перед каждым переходом по ссылке?
Я камень в ваше окно кинул, а оно его само по доброй воле приняло — так что ли? ;) Естественно, что если я бы такого не хотел, то я бы дом без окон делал, ну или не со стеклянными, а с металлическими.
Я же о сути, а не о форме :)
Или вы сторонник показывать людям на их недостатки путем их эксплуатации? (доверчивого обмануть, слабого побить?)
Я же не зря пример с пулей привел. Вот чтобы принять камень или пулю — действия не нужны от принимающей стороны, поэтому если кто-то пулю схлопотал — велика вероятность, что он этого не хотел.
Чтобы обслужить HTTP запрос, нужно реализовать драйвер сетевого адаптера, IP и TCP протоколы (и в дополнение к ним — ICMP, DNS, UDP), затем реализовать HTTP. То есть лет 10 работать. Либо намеренно (часто за деньги) взять уже готовую реализацию (linux, windows). Это подразумевает, что человек _хочет_ получать сетевой трафик. Есть чудесные ОС без поддержки сети, кто ему мешал такую на вебсервер поставить, если он не хотел сеть? :-). То есть желание получить соединение с интернет в целом было четко выражено. Если я девушку приглашаю в кафе, возможно на нее нападет икота и она будет икать весь вечер. Мне это не очень приятно, я б этого не хотел, но это ж не означает, что она не имеет на это право. Согласие было только на всю девушку целиком, и нигде никак не конкретизировалось, так же как и подключение к интернет.
Я понимаю желание защитить человека, у которого в публичном доступе есть test.php, который тут же форматирует диск. Если это «бесплатно» можно сделать — то супер. Но это невозможно. Какой метод вы предлагаете? запретить строку адреса или адрес документа в ней? (и сажать разработчиков браузеров, которые позволяют указать не только сайт, но и документ). Разрешить ходить по сайтам только через поиск яндекса? Бумажные письменные договора перед посещением сайта, а так же ввод номера договора в браузер, перед попыткой зайти на lenta.ru (ну чтобы убедиться, что я тот человек, который знает, что lenta.ru хочет чтобы я ходил на какие-то ее страницы, и не ходил на другие)? Не кажется, что это слишком уж высокая плата для всего человечества за то, чтобы какой-то дурак и лентяй мог бы делать _интегрированные с миром_ вещи удобным ему образом, и чтобы они работали как он хочет, а не как они в реале работают в интеграции с нашим жестоким миром.
Статистика по серверам интересная, спасибо. Жаль, что 5.3 мало распространена и странно, что среди 5.2.x лидирует 5.2.17 (последняя, 06-Jan-2011), а среди 5.3.x — не 5.3.6 (последняя, 17-Mar-2011), не 5.3.5 (закрывающая тот же баг, что и 5.2.17 и от того же числа), а 5.3.3 (22-Jul-2010). Происки мэйнтейнеров дистров? :)
Так я и говорю, что странно, что среди 5.2 лидирует последняя, а среди 5.3 ни последняя, ни закрывающая тот же баг, что последняя 5.2 (почти полугодовой давности), а «какая-то» 5.3.3 (почти готовой давности). Как будто решили, что изменения в 5.2 кривыми быть не могут, а в 5.3 вполне.
Что касается дыры, закрытой в 5.3.5. В Убунту, например, сразу после выхода 5.3.5 пришло обновление безопасности для версии 5.3.3, в которой был бэкпортирован этот патч.
Если есть доступ на шел, то я обычно эту информацию узнаю через «php -i». В этом случае не надо файл создавать (и помнить о том, что надо потом его удалить).
мне кажется, что выборка в 4% не слишком репрезентабельна для того, чтобы говорить о тенденциях в версиях PHP. Насколько пересекаются множества сайтов полгода назад и текущие?
Друзья, я далеко не SEOшник, поэтому заинтересовал вопрос: как поисковые роботы индексируют подобные «скрытые файлы», ведь явных ссылок на них нет? Или такое возможно только при просмотре содержимого каталога «index of ...»?
Вроде у поисковых роботов общепринято, что есть только один файл, на который они лезут без ссылок — /robots.txt, но куда лезут некоторые из них, только их авторы знают, и то не факт :)
Еще часто «скрытые» файлы и каталоги они палят по referer-ам.
Например, у вас на сайте есть некий «интранет», на который больше ниоткуда нет ссылок и вроде бы гугл не должен его найти.
Но в один прекрасный момент вы переходите из своего интранета на основной сайт и гугл аналитика, которая стоит на вашем сайте, палит реферер и гугл идет индексировать ваш интранет :)
5.3 сильно режет работу клиентов написавших сайтик под пхп 4 еще в свое время.
Гемор с переносом с 4ки на 5ку никогда не забуду.
А еще предстоит переход на 6.
Так что 5.3 выглядит как 4.3 в свое время.
Ну и плюс отсутствие зендкодера для бсд под 64 битную платформу, решили повременить с переходом, т.к. кучу софта переписывать, а плюсов ноль фактически. У всех уже стабильные сайты, ждать ioncube релизов для них не стоит, т.к. древние как кое-что мамонта (с 4 пхп очень много сайтов). Проще отдельно предлагать php 5.3 с ioncube.
Это все полумеры, они бессмысленны.
Должна быть явно выделена секретная часть (пароли, ключи, etc.). Все остальное должно быть сделано таким образом, чтобы полный доступ (естественно, на чтение) к нему ничего не давал.
А то окажется Ваш сайт как-нибудь на хостинге со включенным DirectoryIndex, и все…
Я на своих сайта специально данный файл оставляю, только я туда фейк пишу, что то типа версия пхп 4.2 (хотя стоит 5.3) и периодически в логах можно заметить попытки взлома ;)
Поиск файлов phpinfo.php, часть 2