HTTPS를 통해서만 전송되고 일반 HTTP를 통해 전송되지 않도록 ASP.NET 세션 쿠키에서 보안 플래그를 설정하는 방법은 무엇입니까?
답변
이 두 가지, 하나 개 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로 요구합니다.
답변
secure-이 속성은 요청이 HTTPS와 같은 보안 채널을 통해 전송되는 경우에만 쿠키를 보내도록 브라우저에 지시합니다. 이는 쿠키가 암호화되지 않은 요청을 통과하지 못하도록 보호합니다. HTTP 및 HTTPS를 통해 애플리케이션에 액세스 할 수있는 경우 쿠키를 일반 텍스트로 보낼 수 있습니다.
답변
@ Mark D의 대답을 바탕으로 web.config 변환을 사용하여 다양한 쿠키를 모두 보안으로 설정합니다. 이 설정을 포함 anonymousIdentification cookieRequireSSL
하고를 httpCookies requireSSL
.
이를 위해 web.Release.config를 다음과 같이 설정하십시오.
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<httpCookies xdt:Transform="SetAttributes(httpOnlyCookies)" httpOnlyCookies="true" />
<httpCookies xdt:Transform="SetAttributes(requireSSL)" requireSSL="true" />
<anonymousIdentification xdt:Transform="SetAttributes(cookieRequireSSL)" cookieRequireSSL="true" />
</system.web>
</configuration>
ASP.NET Membership Provider
(내가 알고있는 고대) 역할 및 양식 인증을 사용하는 경우 roleManager cookieRequireSSL
및 forms requireSSL
속성도 안전한 것으로 설정하려고합니다 . 그렇다면 web.release.config는 다음과 같습니다 (위에 멤버십 API의 새 태그와 함께 포함됨).
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<httpCookies xdt:Transform="SetAttributes(httpOnlyCookies)" httpOnlyCookies="true" />
<httpCookies xdt:Transform="SetAttributes(requireSSL)" requireSSL="true" />
<anonymousIdentification xdt:Transform="SetAttributes(cookieRequireSSL)" cookieRequireSSL="true" />
<roleManager xdt:Transform="SetAttributes(cookieRequireSSL)" cookieRequireSSL="true" />
<authentication>
<forms xdt:Transform="SetAttributes(requireSSL)" requireSSL="true" />
</authentication>
</system.web>
</configuration>
web.config의 배경이 여기에서 변환됩니다. http://go.microsoft.com/fwlink/?LinkId=125889
분명히 이것은 OP의 원래 질문을 넘어서는 것이지만 모두 보안으로 설정하지 않으면 보안 검색 도구가 표시되고 보고서에 빨간색 플래그가 표시 될 것으로 기대할 수 있습니다. 내가 어떻게 알아? 🙂