Плагин Rails SSL Requirement plugin — разве он не должен проверять, находитесь ли вы в рабочем режиме, прежде чем перенаправлять на https?
-
01-07-2019 - |
Вопрос
Взгляните на плагин ssl_requirement.
Разве он не должен проверять, находитесь ли вы в рабочем режиме?Мы видим перенаправление на https в режиме разработки, что кажется странным.Или это нормальное поведение плагина?Я думал, что в прошлом он вел себя по-другому.
Решение
Я предполагаю, что они считают, что вам, вероятно, следует использовать HTTPS (возможно, с самозаверяющим сертификатом) в режиме разработки.Если это нежелательное поведение, ничто не мешает вам самостоятельно использовать специальное поведение SSL в среде разработки:
class YourController < ApplicationController
ssl_required :update unless Rails.env.development?
end
Другие советы
def ssl_required?
return false if local_request? || RAILS_ENV == 'test' || RAILS_ENV == 'development'
super
end
В идеале вы должны проверять, что ваше приложение перенаправляет на https на конфиденциальных этапах.
Нет особого смысла требовать SSL в среде разработки.
Вы можете отключить плагины ssl_required? метод с использованием встроенных в Rails средств макетирования.
В корневом каталоге вашего приложения создайте файл test/mocks/development/application.rb
require 'controllers/application_controller'
class ApplicationController < ActionController::Base
def ssl_required?
false
end
end
Таким образом, SSL никогда не требуется в среде разработки.
на самом деле, перенаправление через https является обязанностью веб-сервера.Добавление дополнительной проверки хэша запроса для каждого запроса в Rails - это накладные расходы, ИМХО.Я написал nginx конфигурация, которые включают в себя следующее переписывание:
перезаписать ^(.*) https://$host$1 постоянный;