ASP.NET 세션 쿠키에서 보안 플래그를 설정하려면 어떻게해야합니까?

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

  •  22-07-2019
  •  | 
  •  

문제

ASP.NET 세션 쿠키에 보안 플래그를 설정하여 HTTPS를 통해서만 전송되거나 평범한 HTTP가 전송되지 않도록하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

두 가지 방법이 있습니다 httpCookies 요소 web.config 켜질 수 있습니다 requireSSL SSL의 세션을 포함한 모든 쿠키 만 전송하고 내부 폼 인증을 전송하지만 HTTPCookies에서 SSL을 켜면 내부 양식 구성도 켜야합니다.

명확성 편집 :이것을 넣으십시오 <system.web>

<httpCookies requireSSL="true" />

다른 팁

에서 <system.web> 요소, 다음 요소를 추가하십시오.

<httpCookies requireSSL="true" />

그러나, 당신이있는 경우 <forms> 당신의 요소 system.web\authentication 블록, 그러면 설정을 무시합니다 httpCookies, 기본값으로 다시 설정합니다 false.

이 경우 추가해야합니다 requireSSL="true" 양식 요소에도 속합니다.

그래서 당신은 다음과 같이 끝날 것입니다.

<system.web>
    <authentication mode="Forms">
        <forms requireSSL="true">
            <!-- forms content -->
        </forms>
    </authentication>
</system.web>

보다 여기 그리고 여기 이러한 요소의 MSDN 문서화.

엔터프라이즈 환경에서 체크인 코드에 대해 이야기하고 있다면 상황이 빨리 지저분 해집니다. 우리는 가장 좋은 방법은 web.release.config 다음을 포함합니다.

<system.web>
  <compilation xdt:Transform="RemoveAttributes(debug)" />
  <authentication>
      <forms xdt:Transform="Replace" timeout="20" requireSSL="true" />
  </authentication>
</system.web>

이렇게하면 개발자가 영향을받지 않으며 (디버그에서 실행) 릴리스 빌드를 얻는 서버 만 쿠키를 SSL이어야합니다.

보안 -이 속성은 요청이 HTTPS와 같은 보안 채널을 통해 전송되는 경우 쿠키 만 보내도록 브라우저에 알려줍니다. 이를 통해 암호화되지 않은 요청으로 쿠키가 전달되는 것을 방지하는 데 도움이됩니다. 응용 프로그램에 HTTP와 HTTPS를 통해 액세스 할 수 있다면 쿠키를 명확한 텍스트로 전송할 가능성이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top