Jak ustawić bezpieczną flagę na pliku ASP.NET Session Cookie, aby była przesyłana tylko przez HTTPS i nigdy przez zwykły HTTP?Jak ustawić bezpieczną flagę na pliku cookie sesji ASP.NET?
Odpowiedz
Istnieją dwa sposoby, jeden httpCookies
elementem web.config
pozwala włączyć requireSSL
który tylko przekazuje wszystkie ciasteczka w tym sesji SSL tylko i również wewnątrz uwierzytelnianie formularzy, ale jeśli włączyć SSL na httpcookies należy również włączyć również w konfiguracji formularzy.
Edycja dla jasności: umieścić to w <system.web>
<httpCookies requireSSL="true" />
W elemencie <system.web>
dodaj następujący element:
<httpCookies requireSSL="true" />
Jednakże, jeśli masz <forms>
element Twój blok system.web\authentication
, to zastąpi ustawienie w httpCookies
, przywracając domyślną wartość false
. W takim przypadku należy dodać atrybut requireSSL="true"
również do elementu formularzy.
więc skończy się z:
<system.web>
<authentication mode="Forms">
<forms requireSSL="true">
<!-- forms content -->
</forms>
</authentication>
</system.web>
Drobna edycja (potrzebujesz węzła auth w tym systemie btw.internetowych i formy):
Można uniknąć innych ustawień web.config nadrzędnego katalogu
Dodatkowo, jeśli istnieje element 'roleManager', jego atrybut' cookieRequireSSL = "true" 'powinien również ustaw na true. Ref. https://msdn.microsoft.com/en-us/library/system.web.security.roles.cookierequiressl(v=vs.110).aspx –
Rzeczy stają się niechlujne szybko, jeśli mówimy o kodzie odprawionym w środowisku przedsiębiorstwa. Odkryliśmy, że najlepszym rozwiązaniem jest mieć web.Release.config zawierać następujące elementy:
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<authentication>
<forms xdt:Transform="Replace" timeout="20" requireSSL="true" />
</authentication>
</system.web>
ten sposób, twórcy nie mają wpływu (uruchomiony w Debug), a tylko serwery, które się buduje Release wymagają plików cookie jako SSL.
+1 To działało. Dzięki! – Alex
+1 Aby wyjaśnić, jest to, co powinieneś dodać do pliku web.config, aby ustawić bezpieczną flagę pliku cookie auth na true ' ' –
Tr1stan
Pamiętaj, że to zależy od twojego (serwer-poziom) konfiguracja. Zmniejszyłem region testowy z błędem "Aplikacja jest skonfigurowana do wysyłania bezpiecznych plików cookie. Te pliki cookie wymagają, aby przeglądarka wysłała żądanie przez SSL (protokół https), ale bieżące żądanie nie jest przez SSL." Dzieje się tak dlatego, że mamy odwrotny serwer proxy, a przeglądarki łączą się z nim za pośrednictwem protokołu SSL, ale odwrotne proxy do serwera IIS ma port 80, więc aplikacja nie uznała, że jest zabezpieczony. – mlhDev