Направляющие перенаправляют с https

Здесь вы:

void readFromFile(string filename)
{
    string line;
    ifstream myfile(filename);
    if (myfile.is_open())
    {
         while ( getline(myfile,line) )
    {
        cout << line << '\n';
    }
        myfile.close();
  }
}

int main(int argc, char* argv)
{
    readFromFile("Input.txt");
    getchar();
    return 0;
}
28
задан DigitalRoss 2 November 2009 в 21:51
поделиться

5 ответов

Вы » Возможно, лучше будет использовать ssl_requirement и не заботиться о том, использует ли ссылка или перенаправление https. С помощью ssl_requirement вы объявляете, какие действия требуют SSL, какие поддерживают SSL, а какие не должны использовать SSL.

Если вы перенаправляете куда-то за пределы вашего приложения Rails, то указание протокола, как предлагает Олли, будет работать .

11
ответ дан 28 November 2019 в 02:34
поделиться

В Rails 4 можно использовать force_ssl_redirect before_action для принудительного применения ssl для одного контроллера. Обратите внимание, что при использовании этого метода ваши куки не будут помечены как безопасные, и HSTS не используется.

2
ответ дан Samuel 14 October 2019 в 09:50
поделиться

Откройте класс с redirect_to и добавьте метод redirect_to_secure_of с соответствующей реализацией. Затем вызовите:

redirect_to_secure_of "/some_directory/"

Поместите этот метод в каталог lib или куда-нибудь полезное.

-3
ответ дан yfeldblum 14 October 2019 в 09:50
поделиться

Метод ActionController :: Base # redirect_to принимает хеш параметров, одним из параметров которого является : протокол , который позволяет вам вызывать:

redirect_to :protocol => 'https://', 
            :controller => 'some_controller', 
            :action => 'index'

См. Определение для #redirect_to и #url_for для получения дополнительной информации о параметрах.


В качестве альтернативы, особенно если SSL должен использоваться для всех действий вашего контроллера, вы можете применить более декларативный подход, используя before_filter . В ApplicationController вы можете определить следующий метод:

def redirect_to_https
    redirect_to :protocol => "https://" unless (request.ssl? || request.local?)
end

Затем вы можете добавить фильтры в те контроллеры, для действий которых требуется SSL, например:

class YourController
    before_filter :redirect_to_https, :only => ["index", "show"]
end

Или, если вам требуется SSL во всем приложении, объявите фильтр в ApplicationController :

class ApplicationController
    before_filter :redirect_to_https
end
37
ответ дан 28 November 2019 в 02:34
поделиться

Relative URL-адреса по определению используют текущий протокол и хост. Если вы хотите изменить используемый протокол, вам необходимо указать абсолютный URL. Я бы прислушался к совету Джастиса и создал метод, который сделает это за вас:

def redirect_to_secure(relative_uri)
  redirect_to "https://" + request.host + relative_uri
end
-2
ответ дан 28 November 2019 в 02:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: