|
|
|
4.46, OpenEcho (?), 02:32, 25/10/2019 [^] [^^] [^^^] [ответить]
| +7 +/– |
> большинство из них - сайты визитки одностраничники
Эти что ли ?
Facebook
Yahoo!
Wikipedia
WordPress
Tumblr
MailChimp
Flickr
Digg
Ты бы гуглом научился сперва пользоваться, перед тем как делать свои "авторитетные" заявы...
| |
|
5.49, Аноним (49), 04:32, 25/10/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
> > > > Кто-то ещё php использует?!
> > > Более 80% сайтов
> > большинство из них - сайты визитки одностраничники
> Эти что ли ?
> Facebook
> [...]
> Digg
Я так понимаю, это исчерпывающий список большинства сайтов в интернете?
| |
|
6.65, OpenEcho (?), 11:01, 25/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Я так понимаю, это исчерпывающий список большинства сайтов в интернете?
Я привел конкретные доказательства, который каждый может перепроверить...
И в чем вообще "криминал" с большинством "сайты визитки одностраничники" ?
| |
6.74, Ананнимас (?), 12:41, 25/10/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Открываем hh и смотрим вакансии. похапе на бекэнде и пару вкраплений смузихлебов.
Открываем любую фриланс биржу - сплошные вордпресы с битриксами (если у нас) и джумлами с опенкартом.
А вот где поделия на ноде?
| |
|
5.63, anonn (?), 10:42, 25/10/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
уж гугл то точно не на пхп
То что ты описал это единственные крупные ребята кто пхп действительно поддерживает.
Остальные его вертят для небольших сайтов из-за того что CMS готовые есть и разрабов завались. Именно отсюда статистика в 99%.
Если взять среди компаний-гигантов выборку по nodejs, php, go, c++, python, то получишь примерно одинаковый список по каждому из.
| |
|
6.66, OpenEcho (?), 11:15, 25/10/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Остальные его вертят для небольших сайтов из-за того что CMS готовые есть
> и разрабов завались. Именно отсюда статистика в 99%.
Так в этом то и есть ответ на оригинальный вопрос "Кто-то ещё php использует?!" в этой ветке
> Если взять среди компаний-гигантов выборку по nodejs, php, go, c++, python, то
> получишь примерно одинаковый список по каждому из.
Да никто об этом и не спорит, есть просто инструменты, где каждый в чем то хорош, а в чем то плох. Проблема только в людях, которые пытаются все делать одним инструментом (вероятно от не знания, что есть другой тулз)
| |
|
|
4.55, Аноним (55), 09:25, 25/10/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
> большинство из них - сайты визитки одностраничники
На одностраничниках как правило нет PHP
| |
|
5.67, OpenEcho (?), 11:21, 25/10/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
>> большинство из них - сайты визитки одностраничники
> На одностраничниках как правило нет PHP
К сожалению большинству "строителям" интернета даже одностранички влом писать вручную или хотя бы заюзать тот же hugo чтоб сваять статику, так нет же, им проще влепить вордпресс даже для таких целей...
| |
|
6.75, Ананнимас (?), 12:48, 25/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
потому как есть куча плагинов, магазинов, галерей и наконец скинов.
юзерам хочемтся все в один клик делать.
а если еще вспомнить seo хрень, которую на себя берут те же плагины, руками там совсем грустно будет. А без правльных, угодных гуглу, тегов и правльной разметки будет сложо засветиться в поиске.
| |
|
|
|
|
|
|
|
5.34, zzz (??), 22:02, 24/10/2019 [^] [^^] [^^^] [ответить]
| +7 +/– |
>Скорость
Глупость какая-то в 2к19-ом. На первом месте - стильность, модность, молодежность.
| |
|
6.43, OpenEcho (?), 02:06, 25/10/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Глупость какая-то в 2к19-ом. На первом месте - стильность, модность, молодежность.
К великому сожалению... Вы - правы
| |
|
|
4.62, VEG (ok), 10:40, 25/10/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
Вы предлагаете вместо одного из самых быстрых скриптовых языков использовать один из самых медленных. Не надо так. На планете и так слишком много медленного кода.
| |
|
|
|
|
6.51, Аноним (49), 08:42, 25/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
Я всем говарил :вспомнити npm leftpad и что Js быт не должно . Но вам как горохи об-стену
| |
6.64, OpenEcho (?), 10:47, 25/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
> А ты пробовал?
Не пробывал бы, тогда бы и не писал... логика где?
> Или только на leftpad онанировать умеем?
А при чем здесь leftpad, если разговор о том, чем заменить PHP ???
| |
|
7.68, Аноним (68), 11:35, 25/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
>Не пробывал бы, тогда бы и не писал...
ну так удиви нас результатами
>А при чем здесь leftpad, если разговор о том, чем заменить PHP ???
ты же сам его притянул?
| |
|
|
|
|
|
|
1.4, Аноним (49), 20:32, 24/10/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
то есть теперь сторонний код можно запускать не только через phar://? Это здорово.
| |
|
2.12, OpenEcho (?), 20:54, 24/10/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
Удачи !
location ~* [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404 "<!doctyle html><div style="font-size:800%;text-align:center;">🖕</div>";
}
...
}
| |
|
|
4.19, OpenEcho (?), 21:05, 24/10/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Чукча писатель ?
> то есть теперь сторонний код можно запускать ^^^не только через phar://^^^ ? | |
|
|
|
5.22, Аноним (16), 21:13, 24/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
Вместо отображения файла скачает поток
default_type application/octet-stream;
| |
|
6.25, OpenEcho (?), 21:24, 24/10/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Телепатия не удалась :)
default_type text/plain;
И вообще не понятно к чему это, вместо ... там еще есть что почитать ;)
| |
|
|
|
|
|
1.10, Аноним (16), 20:48, 24/10/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
В nginx wiki ubuntu есть еще одна уязвимость связанная с localhost
там по дефолту смотрит в /var/www
а сайты обычно кладут в подкаталог
curl -H 'Host: localhost' и скачиваем все сорцы школоты
| |
|
|
|
4.30, Аноним (16), 21:45, 24/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
Корневая директория сайта работающего на данном сервере
root /var/www;
| |
|
|
2.33, OpenEcho (?), 21:57, 24/10/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Пугает наличие кучи "rewrite" директив к конфигах нджинкса наводящие на не хорошие мысли у этой вики...
| |
2.44, Аноним (44), 02:17, 25/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
>> еще
насчёт описанной в статье траблы, там же есть try_files перед split_path_info
| |
|
3.70, OpenEcho (?), 11:41, 25/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
>>> еще
> насчёт описанной в статье траблы, там же есть try_files перед split_path_info
try_files сбрасывает переменную PATH_INFO(!!!), поэтому либо надо запоминать контент PATH_INFO в другой переменной перед вызовом try_files и подсовывать сохранненый PATH_INFO как
fastcgi_param PATH_INFO $my_saved_path_info;
или проверять наличие физического файла с
if (!-f $document_root$fastcgi_script_name)
https://trac.nginx.org/nginx/ticket/321
| |
|
4.77, Аноним (77), 14:53, 25/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
ну так если try_files вызывется до path_info то это не проблема и в вики path_info сохраняется через промежуточную преременную
| |
|
5.80, OpenEcho (?), 16:39, 25/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
> ну так если try_files вызывется до path_info то это не проблема и
Нет. В этом то и есть проблема, $fastcgi_path_info заполняется после вызова fastcgi_split_path_info и если try_files вызовется до того как содержимое $fastcgi_path_info будет пересохраненно в своей переменной, то PATH_INFO будет утерян
> в вики path_info сохраняется через промежуточную преременную
где это видно что он сохраняется до или после try_files ?
| |
|
|
|
|
1.41, хотел спросить (?), 00:44, 25/10/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
There must be a PATH_INFO variable assignment via statement fastcgi_param PATH_INFO $fastcgi_path_info;. At first, we thought it is always present in the fastcgi_params file, but it's not true.
CentOS 7
если я правильно помню, то это дефолтовый конфиг
проверьте свои дистры на всякий
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
PATH_INFO там нет... и это радует
| |
|
2.59, Ilya Indigo (ok), 09:57, 25/10/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
А с чего ей там вообще быть?
PATH_INFO - это костыль для определения SCRIPT_FILENAME, на каких-то неведомых серверах с неведомой конфигурацией. Сама по себе она никому и не нужна.
| |
|
3.83, OpenEcho (?), 22:09, 25/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
> PATH_INFO - это костыль для определения SCRIPT_FILENAME, на каких-то неведомых серверах
Чиво?????
SCRIPT_FILENAME => The absolute pathname of the currently executing script.
> с неведомой конфигурацией. Сама по себе она никому и не нужна.
Приехали....
PATH_INFO => Contains any client-provided pathname information trailing the actual script filename but preceding the query string, if available.
А если по человечески, то PATH_INFO используется (и не только в PHP) для передачи параметров в GET методе. Все что будет после реального, физического файла, можно на стороне сервера получить в виде path и распарсить, при этом можно еще опционально задействовать стандартные GET параметры передаваемые после "?"
Простой пример: http://domain.tld/script.php/param1/param2/param3
PATH_INFO в этом случае: /param1/param2/param3
Красиво и без rewrite-тов переаданные параметры
Один из самых модных сейчас фреймворков - laravel использует PATH_INFO в реквест классе
До засилия упрощенной симфонии ака ларавель, был еще один, очень популярный (в принципе и сейчас живой, т.к. до сих пор - один из самых быстрых MVC фраймворков и не отягёщенный зависимостями composer-а) фрейворк под названием CodeIgniter, так в нем на сколько помню передача параметров в контроллер осуществлялась как раз таки тоже через PATH_INFO
Так что PATH_INFO - это не для "неведомых серверов с неведомой конфигурацией", а широко применяемая технология...
| |
|
|
1.50, Ilya Indigo (ok), 06:13, 25/10/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> fastcgi_split_path_info ^(.+?\.php)(/.*)$;
Я недавно перешёл на nginx и не знаю его так хорошо как и Apache, но я сразу отбросил этот костыль, как и cgi.fix_pathinfo, в пользу чёткого задания SCRIPT_FILENAME, а не угадывания его сервером.
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
| |
|
2.52, Аноним (52), 09:05, 25/10/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
держи в курсе - твои васян-сайты очень важны этой планетке. (нет)
К сожалению, все еще существуют безумные разработчики, не видящие смысла весь сайт запихивать целиком в /index.php - начитались, понимаешь, каких-то дурацких книжек про необходимость сегментации проектов, особенно на интерпретируемых языках, а выбить из их голов эти бредни эффективного менеджера не нашлось.
И у них этих файлов бывает два, а то и даже четыре!
| |
|
3.58, Ilya Indigo (ok), 09:48, 25/10/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Держу в курсе Вас и других Васянов, пишущих что PHP # (это слово даже блокировано цензурой опеннета) и даже не бум-бум в программировании.
Чтобы воспроизвести эту, как и все другие уязвимости в PHP это нужно специально и намеренно родится с руками из попы.
Если не используется ЧПУ, то за глаза хватит этих блоков, хоть у Вас 40 разных php-скриптов распиханных по разным директориям.
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location / {
index index.html index.php;
try_files $uri $uri/ =404;
}
Сайт и не нужно запихивать весь в index.php, но index.php должен быть единой точкой входа сайта.
| |
|
|
5.73, Ilya Indigo (ok), 12:13, 25/10/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
>> Если не используется ЧПУ, то за глаза хватит этих блоков
> Ну да, это такая редкость чтобы использовались ЧПУ, вообще нигде их нет.
Если используется ЧПУ, тогда я тем более проблемы не вижу!
Или в каждом блоке можно без проблем указать SCRIPT_FILENAME.
fastcgi_param SCRIPT_FILENAME path/to/app.php;
Нормального случая где бы в одном location вызывались бы разные скрипты точно нет!
Или, если на сайте единая точка входа path/to/app.php (по нормальному так и должно быть с ЧПУ-сайтами) можно вообще всё прокинуть в Ваш PHP-контроллер и пусть он дальше сам разбирается что нужно дальше подключать, в зависимости от $_SERVER['REQUEST_URI']
location @php {
fastcgi_pass unix:/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME path/to/app.php;
include fastcgi_params;
}
location / {
index index.html index.php;
try_files $uri $uri/ @php;
}
Опять же не понимаю зачем и кому может понадобится PATH_INFO?
| |
|
4.89, OpenEcho (?), 16:32, 26/10/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вот эта вот конфигурация сверху - очень большой подарок кулхацкерам, классический пример копи/пасте с "гениальных просторов" интернета...
Не, не в обиду, но почему не подумать о элементарном, - зачем разрешать выполнение пхп сриптов везде начиная от корня ??? Вы правда хотите чтоб в директории upload кто нибудь скинул скрипт и потом выполнил ?
nginx позволяет вложенные location, ну так и вставляйте свой
location ~ \.php$ {...} только в тех директориях где есть ВАШИ(!!!) скрипты
Сысоев как то на конференции говорил, что в nginx метод copy/paste - самый лучший способ избежать ошибок, поэтому не надо пытаться строить конфиги нджикса по принципу програмирования, комбинируя в логически разбросанные локэйшены. nginx - так НЕ РАБОТАЕТ, для того чтобы понимать как применяется конфигурация, нужно понимать фазы, в которых применются определенные директивы и почему они выполняются не по порядку как в конвиге и почему if - is evil...
Know your tool, - don't copy blindly! (c) - народная мудрость
| |
|
5.92, Аноним (92), 04:01, 27/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Сысоев как то на конференции говорил, что в nginx метод copy/paste - самый лучший способ избежать ошибок
В nginx встроили js, чтобы логику с if'ами писать. Можно считать этот шаг признанием предыдущих проблем.
> Know your tool, - don't copy blindly! (c) - народная мудрость
То есть, чтобы заиспользовать if надо прочитать кучу хреновой nginx документации? Ну это не есть плюс технологии.
Народна мудрость гласит "люди не читают документацию".
| |
|
6.101, Аноним (101), 19:37, 29/10/2019 [^] [^^] [^^^] [ответить] | +/– | хуже - не документации, а записок углем на чьих-то манжетах, где разжевываются с... большой текст свёрнут, показать | |
|
|
6.102, Аноним (101), 21:04, 29/10/2019 [^] [^^] [^^^] [ответить] | –1 +/– | видимо, Илюша, ты не только в назначении path info не силен, но мнение имеешь к... большой текст свёрнут, показать | |
|
5.100, Аноним (101), 19:17, 29/10/2019 [^] [^^] [^^^] [ответить] | +/– | разумеется не потому, что в корне они и лежат, ну конечно же, нет проблема с... большой текст свёрнут, показать | |
|
|
|
|
1.56, Аноним (56), 09:28, 25/10/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Аффтар хорош: помнится, он ещё в 2017-ом сношал баг-баунти программы у видеохостингов, эксплуатируя ffmpeg и в хвост, и в гриву.
| |
|
2.61, Нанобот (ok), 10:17, 25/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
В новости об этом ничего не сказано, скорее всего тоже должно работать, просто никто пока не потрудился эксплоит сделать и расшарить
| |
|
1.69, Аноним (69), 11:38, 25/10/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Я правильно понимаю, что если сделать так, то эксплойт не страшен?
fastcgi_split_path_info ^([^\n\r]+\.php)(/[^\n\r]+)$;
| |
|
2.81, cewlhazkx0r (?), 17:46, 25/10/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Я правильно понимаю, что если сделать так, то эксплойт не страшен?
о времена, о админчики-девляляпляп...
| |
|
1.82, Анимайзер (?), 22:08, 25/10/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Уязвимость ..., позволяющая удалённо выполнить код на сервере
Всегда, когда читаю новости с такими заголовками, то начинаю нервничать, руки автоматически тянутся к успокоительному, но потом вспоминаю, что являюсь админом локалхоста и на сердце сразу становится легче.
| |
|