Плагин Rails SSL Requirement plugin — разве он не должен проверять, находитесь ли вы в рабочем режиме, прежде чем перенаправлять на https?

StackOverflow https://stackoverflow.com/questions/97468

  •  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 постоянный;

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top