Как запретить nginx отдавать сырцы? - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB73.5187
BTC/USD48291.9717
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 07.09.2017, 17:55   #1
веломан
сыроед
 
Аватар для веломан
 
Регистрация: 01.10.2015
Сообщений: 12,787
Бабло: $1497535
Question Как запретить nginx отдавать сырцы?

я тут наткнулся, что если неудачно крутануть настройки (fastcgi, например), то nginx+fpm свободно раздаст сырцы индекса
(в остальные не сможет залезть без констант, но и индекса достаточно)

тоже самое, если например в самом скрипте написано <?, а не <?php, а в php.ini эта фишка отключена (по умолчанию)

понятно, что настройки надо крутить на тестовом сервере, а не в продакшене, но всё-таки, есть ли там способ запретить вообще сырцы отдавать в принципе?
чё-то гугл вообще глух к этой теме
веломан вне форума  
Старый 07.09.2017, 18:30   #2
Hector
hustle
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,738
Бабло: $1694455
Отправить сообщение для Hector с помощью Jabber
По умолчанию

Не оно?
https://serverfault.com/questions/59...stcgi-in-nginx
https://serverfault.com/questions/47...ile-being-sent
Hector вне форума  
Старый 07.09.2017, 20:07   #3
веломан
сыроед
 
Аватар для веломан
 
Регистрация: 01.10.2015
Сообщений: 12,787
Бабло: $1497535
ТС -->
автор темы ТС По умолчанию

там просто рассказывают, как запустить правильно, чтобы он обрабатывал скрипты
но это я знаю ))
я хочу, чтобы если после случайной ошибки в настройках он вдруг захочет отдать СЫРОК, чтобы он этого НЕ ДЕЛАЛ )))
т.е. вообще запретить ему отдавать исходник

кроме того, вот этот способ ниочинь: https://www.nginx.com/resources/wiki...mples/phpfcgi/
тот "якобы баг" в try_files закрыли ещё 4 года назад и не баг это вовсе
так лучше (тот же самый эффект с test.php):
Код:
php.ini -> cgi.fix_pathinfo = 0
nginx:
location ~ \.php$ {
try_files $uri /index.php;
fastcgi_параметры ...

Последний раз редактировалось веломан; 07.09.2017 в 20:18.
веломан вне форума  
Старый 08.09.2017, 02:14   #4
AntonIon
Senior Member
 
Регистрация: 15.11.2015
Сообщений: 216
Бабло: $29410
По умолчанию

Цитата:
Сообщение от веломан Посмотреть сообщение
там просто рассказывают, как запустить правильно, чтобы он обрабатывал скрипты
но это я знаю ))
я хочу, чтобы если после случайной ошибки в настройках он вдруг захочет отдать СЫРОК, чтобы он этого НЕ ДЕЛАЛ )))
т.е. вообще запретить ему отдавать исходник

кроме того, вот этот способ ниочинь: https://www.nginx.com/resources/wiki...mples/phpfcgi/
тот "якобы баг" в try_files закрыли ещё 4 года назад и не баг это вовсе
так лучше (тот же самый эффект с test.php):
Код:
php.ini -> cgi.fix_pathinfo = 0
nginx:
location ~ \.php$ {
try_files $uri /index.php;
fastcgi_параметры ...

Не затестил, но вроде кусок твоего конфига и не должен отдавать исходник.

А нет, хотя это саму пыху в конфиге, по любому крутить надо, чтобы <? воспринимала как должное. Но такого даже в паблик скриптах 100 лет не видел уже. Хреновая практика. Можно что-то одноразовое намутить, чтобы меняло все <? на <?php, но остальное даже представить невозможно. Покажи пример, где сорцы отдаются. При каком конфиге? Интересно даже стало.

Ну и вопрос в догонку - как ты научишь нджингс определять исходник это или нет? Или даже fcgi как научишь? В пыхе же мешанина кода и обычного текста\хтмл и он никак это не помечает, в принципе.
AntonIon вне форума  
Старый 08.09.2017, 02:41   #5
веломан
сыроед
 
Аватар для веломан
 
Регистрация: 01.10.2015
Сообщений: 12,787
Бабло: $1497535
ТС -->
автор темы ТС По умолчанию

ну я в принципе спрашивал со слабой надеждой, зная 95% ответа )

просто вместо php пишешь pp: location ~ \.pp$ {

про константы кстати я немного спиздел... там надо чтобы никто не знал, где файлы лежат
т.е. грузить пути константами из редиски например, как я делаю
тогда в принципе в индексе можно вообще оставить только require(SOME_CONSTANT);
где в SOME_CONSTANT какой-нибудь /path/to/new/index223.php
с опкешем даже и незаметно будет...
веломан вне форума