복붙노트

[RUBY-ON-RAILS] force_ssl 레일에 무엇입니까?

RUBY-ON-RAILS

force_ssl 레일에 무엇입니까?

이전 질문에서 난의 nginx에 SSL 종료를 설정하고 레일이 암호화 된 데이터를 처리 할 가지고 있지되어야 함을 발견했다.

그럼 왜 다음의 존재합니까?

config.force_ssl = true

나는이 생산 config 파일에서 주석을 참조하십시오. 그러나 기대는 경우 내 레일 응용 프로그램은 다음 무엇을 config.force_ssl = 사실 할 일 암호화 된 데이터를 처리하지 않도록 모든 SSL 물건을 처리 할 것 nginx를?

난 항상 nginx를 사용하게 될 알고있는 경우가 생산에 주석두고해야 하는가?

해결법

  1. ==============================

    1.그냥 HTTPS로 리디렉션 HTTP 브라우저를 강요하지 않습니다. 그것은 또한 당신의 쿠키가 "보안"으로 표시 할 설정하고, 그것을 제거 SSL에 대한 아주 좋은 보호되어 각각의 HSTS를 할 수 있습니다.

    그냥 HTTPS로 리디렉션 HTTP 브라우저를 강요하지 않습니다. 그것은 또한 당신의 쿠키가 "보안"으로 표시 할 설정하고, 그것을 제거 SSL에 대한 아주 좋은 보호되어 각각의 HSTS를 할 수 있습니다.

    누군가가 당신의 클라이언트와 서버 사이에 도착 그들은 오히려 쉽게 방문 얻을 수 있다면 비록 HTTPS는 MITM 공격에 대해 "https://example.com/yourapp"귀하의 응용 프로그램을 보호한다 "http://example.com/yourapp" . 위 보호의도로, 브라우저가 행복하게 MITM을하고있는 사람에게 세션 쿠키를 보내드립니다.

  2. ==============================

    2.config.force_ssl 설정 ActionDispatch :: SSL가 포함되어 있습니다. (강조는 명확성을 위해 추가)는 다음과 같이 ActionDispatch :: SSL 워드 프로세서 기능을 설명합니다 :

    config.force_ssl 설정 ActionDispatch :: SSL가 포함되어 있습니다. (강조는 명확성을 위해 추가)는 다음과 같이 ActionDispatch :: SSL 워드 프로세서 기능을 설명합니다 :

    이 미들웨어 config.force_ssl 사실 = config.ssl_options 및 설정 옵션을 통과 할 때 스택에 추가된다. 그것은 보안 HTTP 요청을 적용 할 세 가지 작업을 수행합니다

    요청은 옵트 아웃 할 수 제외와 재 지정 :

    config.ssl_options = { redirect: { exclude: -> request { request.path =~ /healthcheck/ } } }
    
  3. ==============================

    3.리디렉션 HTTP하여이 설정 힘 HTTPS는 HTTPS 대응에 요청합니다. 그래서 http://domain.com/path 방문 브라우저는 https://domain.com/path로 리디렉션됩니다.

    리디렉션 HTTP하여이 설정 힘 HTTPS는 HTTPS 대응에 요청합니다. 그래서 http://domain.com/path 방문 브라우저는 https://domain.com/path로 리디렉션됩니다.

    두 프로토콜을 허용 할 주석 설정을 떠난다.

    당신은 여전히 ​​HTTPS 요청을 처리하기 위해 웹 서버를 구성해야합니다.

  4. ==============================

    4.그것은 HTTPS를 통해 암호화하는 서버와 SSL을 사용, 즉 모든 통신을 강제로.

    그것은 HTTPS를 통해 암호화하는 서버와 SSL을 사용, 즉 모든 통신을 강제로.

    당신이 컨트롤러에 포함되면 컨트롤러는 HTTPS 요청을 받아 들일 것이다.

    유용한 링크 :

  5. from https://stackoverflow.com/questions/15676596/what-does-force-ssl-do-in-rails by cc-by-sa and MIT license