2015-05-27 5 views
3

По соображениям безопасности я не хочу иметь Синатр печатать каждый URL его просили в стандартном выводе, я попытался с помощью set :logging, false как предложен в this answer с помощью:Отключить Синатр стандартного вывод

class SweetAppName< Sinatra::Base 
    set :show_exceptions, false 
    set :environment, :production 
    set :logging, false 

Однако, когда я бегу приложение с использованием rackup и тонкие, я все еще вижу запрос регистрируется в терминале:

127.0.0.1 - - [26/May/2015: 09: 32: 34 -0700] «GET/не-a- real-url HTTP/1.0 "404 - 0.0452

Как я могу отключить их?

+1

Если вы отправляете конфиденциальные данные как часть URL-адреса, вы должны знать, что HTTP-пакеты могут быть перехвачены. Затем злоумышленник сможет читать URL-адреса из пакетов HTTP. Вероятно, вы должны использовать HTTPS, где весь пакет зашифрован, включая URL. –

+0

Я использую HTTPS, однако, когда NGINX передает запрос вверх по потоку, он делает это как HTTP-запрос. –

ответ

6

Если вы начинаете свое приложение с rackup, Rack will add some middleware, including logging. Вы можете предотвратить это, используя тихий вариант (-q или --quiet) к rackup, т.е. из командной строки:

$ rackup -q 

Вы можете включить эту опцию в вашем config.ru, если вы хотите, так что вам не нужно помнить набрав его каждый раз, когда вы запускаете свое приложение. first line that starts with #\ is parsed as options, так что вы можете иметь config.ru так:

#\ --quiet 

# other middleware etc... 
run SweetAppName 

Если вы используете классический стиль Синатра приложения, вам нужно будет добавить set :logging, false линии, в противном случае Синатр добавит свою собственную регистрацию. С модульным стилем (например, вы используете в вопросе) этот параметр по умолчанию равен false, поэтому вам не нужно.

Смежные вопросы