2017-12-08 46 views
0

Ich möchte strikte Transportsicherheit ermöglichen. Meine Website ist ein https aktivieren. Unten ist mein Code, um HSTS zu aktivieren.Enable Strenge Transportsicherheit mvc

<system.webServer> 
    <httpProtocol> 
     <customHeaders> 

      <add name="X-Frame-Options" value="SAMEORIGIN" /> 
      **<add name="Strict-Transport-Security" value="max-age=31536000"/>** 
     ..... 
     </customHeaders> 
    </httpProtocol> 

Ist obige Einstellung genug ist, strenge Transportsicherheit aktivieren oder zu tun, damit ich muss auch also unterhalb Einstellung hinzuzufügen.

<rewrite> 
     <rules> 
     <rule name="HTTP to HTTPS redirect" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions> 
      <add input="{HTTPS}" pattern="off" ignoreCase="true" /> 
      </conditions> 
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" 
       redirectType="Permanent" /> 
     </rule> 
     </rules> 
     <outboundRules> 
     <rule name="Add Strict-Transport-Security when HTTPS" enabled="true"> 
      <match serverVariable="RESPONSE_Strict_Transport_Security" 
       pattern=".*" /> 
      <conditions> 
      <add input="{HTTPS}" pattern="on" ignoreCase="true" /> 
      </conditions> 
      <action type="Rewrite" value="max-age=31536000" /> 
     </rule> 
     </outboundRules> 
    </rewrite> 

Wenn beide Einstellung dann obligatorisch sind, was die Notwendigkeit zum Umschreiben ist können wir HST nur oder nur Rewrite aktivieren.

Warum Neuschreiben erforderlich ist. https://www.hanselman.com/blog/HowToEnableHTTPStrictTransportSecurityHSTSInIIS7.aspx

Antwort

0

Dieser Header zwingt den Browser, HTTPS zu verwenden. Wenn die Anwendung irgendwo eine HTTP-Verbindung hat oder wenn der Benutzer versucht, eine URL mit HTTP einzugeben, leitet der Browser ihn zu https um. Um HSTS zu verwenden, benötigt die Site ein gültiges SSL-Zertifikat. Das Neuschreiben ist nicht obligatorisch, aber es ist gut zu haben. Wenn der Benutzer zum ersten Mal die Website mit https öffnet, wird der Benutzer bei jedem Besuch auf der Website automatisch umgeleitet, bis er abgelaufen ist. Wenn der Benutzer jedoch einmal in den HTTP-Modus wechselt, funktioniert der STS möglicherweise erst, wenn er die Website einmal in https verwendet. Es ist besser, das Neuschreiben zu verwenden.

<system.webServer> 
<httpProtocol> 
<customHeaders> 
<add name=”Strict-Transport-Security” value=”max-age=xxxxxx”/> 
</customHeaders> 
</httpProtocol> 
</system.webServer> 

https://www.owasp.org/index.php/HTTP_Strict_Transport_Security_Cheat_Sheet

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security

+0

auch wenn ich Rewrite nicht verwenden, und wenn ich versuche, http, es zu verwenden Browser erzwingen https zu verwenden, dh es ohne Umschreiben auf https automatisch umleiten. – user1681166

+0

Was passiert, wenn Sie nicht umschreiben – user1681166

+0

Ohne neu zu schreiben, wird es auch funktionieren. Ich habe nicht umgeschrieben. Verwenden Sie einfach den oben genannten Code für sts, löschen Sie den Browser-Cache, geben Sie die URL mit http und Sie landen die Website nur mit http. Es wird nicht auf https umgeleitet. Sobald Sie die URL mit https gefunden haben, versuchen Sie, http einzugeben und versuchen Sie, die Website zu betreten, es wird Ihnen nicht mehr erlauben, auf die Seite mit http zuzugreifen. Wieder löschen Sie den Cache und versuchen Sie http, wird es dann erlauben. Es ist nur ein Wert für den Client-Browser festgelegt. Wenn Sie den Cache leeren, ist er verschwunden. – Chidambaram