IIS Web.Config

Konfigurationsvorschläge

Im Folgenden wird die empfohlene Grundkonfiguration der Anwendung im Webserver betreffend Sicherheitsaspekten behandelt. Einige Einstellungen dienen dazu, automatisierten Scans möglichst wenige Informationen über die verwendete Infrastruktur zu liefern.

Diverses

httpRuntime
  • maxRequestLength
    Begrenzt die Grösse hochzuladender Dateien
  • enableVersionHeader
    «false» entfernt den X-AspNet-Version Response Header

system.web/httpRuntime

<system.web>
  <httpRuntime targetFramework="4.8" requestValidationMode="2.0" maxRequestLength="1073741824" enableVersionHeader="false" />
</system.web>
maxRequestLength auf auf denselben Wert wie system.webServer.security.requestFiltering.requestLimits.maxAllowedContentLength setzen
security
  • removeServerHeader
    «true» entfernt den Response Header mit den Informationen des Webserver und der Version (bsp.: Microsoft-IIS/8.5)
  • maxAllowedContentLength
    Begrenzt die Grösse hochzuladender Dateien

system.webServer.security

<system.webServer>
  <security>
    <requestFiltering removeServerHeader="true">
      <requestLimits maxAllowedContentLength="1073741824" />
    </requestFiltering>
  </security>
<system.webServer>
maxAllowedContentLength auf denselben Wert wie httpRuntime.maxRequestLength setzen
Cookies
Das ANTRAS CMS benötigt idR. ausschliesslich ein Session Cookie.
  • sessionState/cookieName
    Überschreibt den Namen des «Sitzungscookies»
  • sessionState/cookieSameSite
    «Strict» weist den Browser an, das Sitzungs -Cookie unter keinen Umständen an «fremde» Webseiten weiterzuleiten. Der verwendete Browser muss dies unterstützen.
  • httpCookies/httpOnlyCookies
    «true» weist den Browser an, den Zugriff von Scripts auf Cookies zu verhindern. Der verwendete Browser muss dies unterstützen.
  • httpCookies/requireSSL
    «true» weist den Browser an, Cookies ausschliesslich per SSL/TLS abgesicherte Verbindungen zurück an den Server zu senden. Der verwendete Browser muss dies unterstützen.
    Da die Anwendung auf das Session-Cookie angewiesen ist, ist es wichtig, dass diese nur noch per https erreicht werden kann.

    Falls Sie die Anwendung ohne HTTPS betreiben, darf diese Einstellung nicht genutzt werden.
  • httpCookies/sameSite
    «Strict» weist den Browser an, mögliche weitere Cookies unter keinen Umständen an «fremde» Webseiten weiterzuleiten. Der verwendete Browser muss dies unterstützen.

Cookie Einstellungen unter system.web

<system.web>
  <sessionState cookieName="CompanySesID" cookieSameSite="Strict" />
  <httpCookies httpOnlyCookies="true" requireSSL="true" sameSite="Strict"/>
</system.web>
requireSSL="true" nur verwenden, wenn die Anwendung ausschliesslich über HTTPS erreichbar ist.
Header
  • remove ..
    Entfernt einige nicht erfordliche Response Header
  • X-Frame-Options
    «sameorigin» ist die empfohlene Einstellung und verhindert, dass die Website oder Teile davon auf fremden Seiten in einem «iFrame» engezeigt werden.
  • Content-Security-Policy
    Die für den Betreib des ANTRAS CMS empfohlenen und notwendigen Einstellungen.
  • Strict-Transport-Security
    Weist den Browser an, in Zukunft für den angegebenen Zeitraum in Sekunden ausschliesslich verschlüsselte Verbindungen für diese Seite zu verwenden.
  • X-Content-Type-Options
    «nosniff» weist den Browser an, beim Download einer Datei diese nicht zu untersuchen um den Dateityp festzustellen, sondern den vom Server gelieferten Dateityp zu verwenden.

customHeaders

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <clear />
      <remove name="X-Powered-By" />
      <remove name="Server" />
      <remove name="x-aspnet-version" />
      <add name="X-Frame-Options" value="sameorigin" />
      <add name="Content-Security-Policy" value="default-src 'self' script-src 'unsafe-inline' script-src 'unsafe-eval' img-src 'self' data:;"/>
      <add name="Strict-Transport-Security" value="max-age=15768000" />
      <add name="X-Content-Type-Options" value="nosniff" />
    </customHeaders>
  </httpProtocol>
</system.webServer>
script-src 'unsafe-eval' ist für Function() erforderlich
Umleitung auf HTTPS

Leiten Sie die Benutzer von HTTP auf das transportverschlüsselte HTTPS Protokoll um.
Dies ist zwingend erforderlich, wenn httpCookies/requireSSL=true gesetzt ist.

Sie benötigen dazu das Modul «URL Rewrite».

Umleitung auf HTTPS

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Http to Https" stopProcessing="true">
        <match url="(.*)" />
        <conditions>
          <add input="{HTTPS}" pattern="^OFF$" />
        </conditions>
        <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>
Erfordert «URL Rewrite»

Überprüfung beim Applikationstart

Beim Start der Applikation werden die wichtigsten Einstellungen geprüft und im «web.log» gegebenenfalls Vorschläge für Anpassungen unterbreitet.

2023-03-06 13:32:42,972 [56] INFO  Application - The ANTRAS.cms.AppAntrasCms application has been created and is started
2023-03-06 13:32:42,987 [56] INFO  Application - Copyright © 2023 by ANTRAS Informationstechnologie GmbH ........
2023-03-06 13:32:42,987 [56] INFO  Application - Checking some entries in web.config
2023-03-06 13:32:42,987 [56] INFO  Application -   system.web/sessionState/CookieName = CompanySesID : OK
2023-03-06 13:32:42,987 [56] INFO  Application -   system.web/sessionState/CookieSameSite = Strict : OK
2023-03-06 13:32:42,987 [56] INFO  Application -   system.web/httpCookies/HttpOnlyCookies = True : OK
2023-03-06 13:32:42,987 [56] INFO  Application -   system.web/httpCookies/RequireSSL = False : Should be True. Cookies should only be transmitted in a SSL session
2023-03-06 13:32:42,987 [56] INFO  Application -   system.web/httpCookies/SameSite = Strict : OK
2023-03-06 13:32:42,987 [56] INFO  Application -   system.web/httpRuntime/enableVersionHeader = False : OK