ASP.NET 세션 쿠키에서 보안 플래그를 설정하려면 어떻게해야합니까?
-
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>
엔터프라이즈 환경에서 체크인 코드에 대해 이야기하고 있다면 상황이 빨리 지저분 해집니다. 우리는 가장 좋은 방법은 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를 통해 액세스 할 수 있다면 쿠키를 명확한 텍스트로 전송할 가능성이 있습니다.