> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Absicherung Ihres IIS-Servers

> Härten Sie den IIS-Server, auf dem ABBYY FlexiCapture 12 gehostet wird, mit Sicherheits-Headern wie CSP und HSTS, DDoS-Schutz, starken TLS-Chiffren und `web.config`-Regeln.

Wenn ABBYY FlexiCapture 12 bereitgestellt wird, werden die Standardwerte der IIS-Sicherheitskonfiguration verwendet. Sie können außerdem zusätzliche Regeln für bestimmte Anfragen einrichten, um Ihren Webserver besser abzusichern.

<div id="content-security-policy-header">
  ## Content-Security-Policy-Header
</div>

Content Security Policy (CSP) ist ein Sicherheitsstandard, den moderne Browser zum Schutz vor Dateninjektionsangriffen wie Cross-Site Scripting (XSS) verwenden. CSP nutzt eine Whitelist, um festzulegen, welche Ressourcen sicher geladen werden dürfen, und ignoriert nicht verifizierte Quellen. Außerdem werden alle Versuche protokolliert, die Sicherheitsrichtlinie zu umgehen.

Damit diese Richtlinie verwendet werden kann, muss der Server über einen Content-Security-Policy-HTTP-Header mit einer oder mehreren konfigurierten Direktiven verfügen, wobei jede Direktive für einen bestimmten Ressourcentyp zuständig ist. Direktiven definieren eine Sicherheitsrichtlinie, indem sie Regeln für Ressourcen festlegen.

Um CSP für Ihren Browser einzurichten, fügen Sie den folgenden Code in Ihre Datei `web.config` ein:

```
<system.webServer> 
<httpProtocol> 
<customHeaders> 
<add name="Content-Security-Policy" value="default-src https: data: 'unsafe-inline' 'unsafe-eval'" /> 
</customHeaders> 
</httpProtocol> 
</system.webServer>
```

<Note>
  Wenn Sie ABBYY FlexiCapture in Systeme von Drittanbietern integrieren müssen und Zugriff auf andere Hosts benötigen, geben Sie diese in der Datei `web.config` an. Prüfen Sie nach jeder Änderung Ihrer Sicherheitskonfiguration unbedingt, ob die Software ordnungsgemäß funktioniert.
</Note>

Weitere Informationen zum Content-Security-Policy-Header finden Sie auf [dieser Website](https://content-security-policy.com/).

<div id="http-strict-transport-security-header">
  ## HTTP-Strict-Transport-Security-Header
</div>

HTTP Strict-Transport-Security (HSTS) ist ein Schutzmechanismus für Websites, der sämtliche Interaktionen zwischen dem Browser und der Website auf eine sichere Verbindung über das SSL-Protokoll beschränkt. Ein Webserver, für den HSTS eingerichtet ist, weist den Browser an, ausschließlich HTTPS zu verwenden, und verbietet die Verwendung von HTTP. HSTS wird in erster Linie eingesetzt, um Abhörangriffe auf Anfragen und Antworten abzuwehren, zum Beispiel MITM-Angriffe (Man-In-The-Middle).

Damit Sie diese Sicherheitsrichtlinie verwenden können, müssen Sie URL-Rewrite-Regeln verwenden, um HTTP-Antworten einen Strict-Transport-Security-(STS)-Header hinzuzufügen. Dies ist erforderlich, um unerwünschte HTTP-Anfragen zu verhindern und den gesamten HTTP-Datenverkehr an HTTPS umzuleiten (auf Grundlage der in den Regeln festgelegten Logik). Um die Regeln einzurichten, müssen Sie das Modul URL Rewrite installieren. Weitere Informationen finden Sie auf der [Microsoft-Website](https://docs.microsoft.com/ru-ru/iis/extensions/url-rewrite-module/using-the-url-rewrite-module).

Um HSTS für Ihren Browser einzurichten, fügen Sie den folgenden Code in Ihre Datei `web.config` ein:

```
<rule name="Add the STS header in HTTPS responses">
<match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" />
<conditions>
<add input="{HTTPS}" pattern="on" />
</conditions>
<action type="Rewrite" value="max-age=31536000" />
</rule>
```

<Note>
  Die Direktive `max-age` gibt den Zeitraum (in Sekunden) an, für den die Regel gilt. Der im obigen Codeausschnitt angegebene Wert entspricht einem Zeitraum von einem Jahr.
</Note>

Weitere Informationen zu HSTS finden Sie auf der [Microsoft-Website](https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10-version-1709/iis-10-version-1709-hsts#challenges-on-enabling-hsts-before-iis-100-version-1709).

<div id="x-powered-by-and-x-aspnet-version-headers">
  ## Die Header X-Powered-By und X-AspNet-Version
</div>

Neben HTTP-Headern, die für die Verbesserung der Sicherheit Ihres Webservers unverzichtbar sind, gibt es auch optionale Header. Solche optionalen Header unterliegen häufig keinen Standards, und ihre Verwendung erhöht die von jeder HTTP-Anfrage erzeugte Datenmenge, wodurch bösartige Angriffe leichter durchgeführt werden können.

Im Folgenden sind zwei solche optionalen Header aufgeführt:

* X-Powered-By ist ein HTTP-Header, der Informationen über verschiedene vom Webserver verwendete Technologien enthält.
* X-AspNet-Version ist ein HTTP-Header, der Informationen über die ASP.NET-Version enthält, die für die Bereitstellung von Anwendungen auf dem Webserver verwendet wird.

Standardmäßig sind sowohl X-Powered-By als auch X-AspNet-Version in Serverantworten enthalten. Wir empfehlen, diese Header zu deaktivieren, da die Bereitstellung identifizierender Informationen ein Sicherheitsrisiko darstellen kann.

Um den Header X-Powered-By aus der IIS-Konfiguration zu entfernen, fügen Sie den folgenden Code in Ihre Datei `web.config` ein:

```
<httpProtocol> 
<customHeaders> 
<remove name="X-Powered-By" />   
</customHeaders></httpProtocol>
```

Um den Header X-AspNet-Version aus Ihrer IIS-Konfiguration zu entfernen, fügen Sie den folgenden Code in Ihre Datei `web.config` ein:

```
<httpRuntime enableVersionHeader="false" />
```

<div id="x-xss-protection-header">
  ## X-XSS-Protection-Header
</div>

X-XSS-Protection ist ein HTTP-Header, der von Browsern verwendet wird, um Cross-Site-Scripting-Angriffe zu verhindern. Er funktioniert, indem er einen XSS-Filter aktiviert, der unerwünschte Versuche abfängt, schädlichen Code von Drittanbietern in im Browser geöffnete Webseiten einzuschleusen.

X-XSS-Protection ist mit den folgenden Browsern kompatibel: Internet Explorer 8+, Chrome und Safari. Die meisten modernen Browser verwenden jedoch eine strengere Sicherheitsrichtlinie (zum Beispiel Content-Security-Policy), sodass dieser Header nur dann erforderlich ist, wenn Sie einen älteren Browser verwenden, der CSP nicht unterstützt.

Um den X-XSS-Protection-Header für Ihren Browser zu aktivieren, kopieren Sie den folgenden Code in Ihre Datei `web.config`:

```
<system.webServer> 
<httpProtocol> 
<customHeaders> 
<add name="X-XSS-Protection" value="1; mode=block" /> 
</customHeaders> 
</httpProtocol> 
</system.webServer>
```

<div id="x-content-type-options-header">
  ## Der X-Content-Type-Options-Header
</div>

X-Content-Type-Options ist ein HTTP-Header, der von Browsern verwendet wird, um Angriffe zu verhindern, die MIME-Schwachstellen (Multipurpose Internet Mail Extensions) ausnutzen. MIME ist ein Internetstandard für Inhalte, die über eine Internetverbindung übertragen werden. Alle vom Webserver bereitgestellten Dateien werden von Browsern abhängig vom MIME-Typ der jeweiligen Dateien verarbeitet. Browser bestimmen den Ressourcentyp entweder anhand des Content-Type-Antwort-Headers oder durch Prüfen des Ressourceninhalts, wodurch Angreifer HTML-Dateien als Dateien eines anderen Typs tarnen können.

Die einzige für diesen Header verfügbare Direktive ist die Direktive `nosniff`. Sie weist Browser an, ausschließlich den vom Webserver angegebenen MIME-Typ zu verwenden.

Um den X-Content-Type-Options-Header für Ihren Browser zu aktivieren, fügen Sie den folgenden Code in Ihre Datei `web.config` ein:

```
<system.webServer> 
<httpProtocol> 
<customHeaders> 
<add name="X-Content-Type-Options" value="nosniff" /> 
</customHeaders> 
</httpProtocol> 
</system.webServer>
```

<div id="server-header">
  ## Server-Header
</div>

Der Server-Header ist ein Antwort-Header, der Informationen über die Anwendung enthält, die vom Quellserver zur Verarbeitung einer Anfrage verwendet wird (z. B. die Versionsnummer der Anwendung). Dass solche Informationen potenziell für Dritte verfügbar sind, stellt ein Sicherheitsrisiko dar. Aus diesem Grund empfehlen wir, den Inhalt des Server-Headers zu löschen.

Um den Inhalt des Server-Headers zu löschen, fügen Sie den folgenden Code in Ihre Datei `web.config` ein:

```
<rewrite>  
     <outboundRules rewriteBeforeCache="true"> 
    <rule name="Remove Server header"> 
      <match serverVariable="RESPONSE_Server" pattern=".+" /> 
      <action type="Rewrite" value="" /> 
    </rule>   
</outboundRules> 
</rewrite>
```

Wenn Sie IIS 10.0, Windows Server 2016 oder höher verwenden, nutzen Sie stattdessen den folgenden Code:

```
Set-WebConfigurationProperty  
-pspath 'MACHINE/WEBROOT/APPHOST'   
-filter "system.webServer/security/requestFiltering"  
-name "removeServerHeader"  
-value "True"
```

<Note>
  Die oben beschriebenen Einstellungen setzen voraus, dass das Modul URL Rewrite installiert ist. Weitere Informationen finden Sie in [der Microsoft-Dokumentation](https://docs.microsoft.com/ru-ru/iis/extensions/url-rewrite-module/using-the-url-rewrite-module).
</Note>

<div id="x-frame-options-header">
  ## X-Frame-Options-Header
</div>

Standardmäßig ist es zulässig, ABBYY FlexiCapture Web Stations per iFrame in Websites anderer Unternehmen einzubetten. Wenn Sie jedoch feststellen, dass Framesniffing stattfindet, können Sie Folgendes tun, um zu verhindern, dass Inhalte in einem domainübergreifenden iFrame gehostet werden:

<Steps>
  <Step title="Die Site auswählen">
    Erweitern Sie im Bereich **Connections** auf der linken Seite den Ordner **Sites** und wählen Sie die Site aus, die Sie schützen möchten.
  </Step>

  <Step title="HTTP Response Headers öffnen">
    Doppelklicken Sie in der Funktionsliste in der Mitte auf das Symbol **HTTP Response Headers**.
  </Step>

  <Step title="Einen Header hinzufügen">
    Klicken Sie im Bereich **Actions** auf der rechten Seite auf **Add**.
  </Step>

  <Step title="Den Wert für X-Frame-Options festlegen">
    Geben Sie im sich öffnenden Dialogfeld im Feld **Name** **X-Frame-Options** und im Feld **Value** **SAMEORIGIN** oder **DENY** ein.
  </Step>
</Steps>

Weitere Informationen finden Sie in [der Microsoft-Dokumentation](https://support.microsoft.com/en-us/office/mitigating-framesniffing-with-the-x-frame-options-header-1911411b-b51e-49fd-9441-e8301dcdcd79).

<div id="slow-http-post-vulnerability">
  ## Schwachstelle durch langsame HTTP-POST-Anfragen
</div>

Die Schwachstelle durch langsame HTTP-POST-Anfragen ist eine Variante eines langsamen HTTP-Denial-of-Service-Angriffs (DoS), auch als Slowloris-HTTP-Angriff bezeichnet. Bei einem langsamen HTTP-POST-Angriff kündigt der Angreifer in einer HTTP-POST-Anfrage an, dass eine große Datenmenge gesendet wird, und überträgt diese dann sehr langsam. Um diese Schwachstelle kundenseitig zu beheben, müssen in den IIS-Konfigurationen auf den Computern, auf denen der Application Server installiert ist, Web Limits eingerichtet werden. Die Limits sollten für die folgenden Parameter festgelegt werden:

* `ConnectionTimeout`
* `MinFileBytesPerSec`

Weitere Informationen zu Web Limits finden Sie in [der Microsoft-Dokumentation](https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/weblimits).

<div id="use-https-instead-of-http">
  ## HTTPS statt HTTP verwenden
</div>

Dem HTTP-Protokoll fehlen Sicherheitsmechanismen zur Verschlüsselung von Daten, während HTTPS ein digitales SSL- oder TLS-Zertifikat bereitstellt, um die Kommunikation zwischen Server und client abzusichern. Stellen Sie sicher, dass der gesamte Datenverkehr zwischen dem Browser des Benutzers und dem Webserver über einen verschlüsselten HTTPS-Kanal erzwungen wird. HTTP verwendet standardmäßig Port 80. Schließen Sie diesen Port, um die Verwendung von HTTP zu verhindern.

<div id="use-an-up-to-date-tls-version-and-strong-ciphers">
  ## Aktuelle TLS-Version und starke Chiffren verwenden
</div>

TLSv1.1 gilt als schwaches Verschlüsselungsprotokoll. Ein Angreifer kann Schwachstellen im Protokoll ausnutzen, um geschützte Kommunikation mitzulesen oder Nachrichten böswillig zu verändern. Wir empfehlen, immer die neuestmögliche TLS-Version und nur starke Chiffren zu verwenden (eine Liste geeigneter Chiffren finden Sie unter [https://wiki.mozilla.org/Security/Server\_Side\_TLS](https://wiki.mozilla.org/Security/Server_Side_TLS)). So konfigurieren Sie die SSL-Cipher-Suite per Gruppenrichtlinie:

<Steps>
  <Step title="Den Gruppenrichtlinien-Editor öffnen">
    Geben Sie an einer Eingabeaufforderung `gpedit.msc` ein. Der **Group Policy Object Editor** wird angezeigt.
  </Step>

  <Step title="Die SSL-Konfigurationseinstellungen öffnen">
    Erweitern Sie **Computer Configuration, Administrative Templates** und **Network** und klicken Sie dann auf **SSL Configuration Settings**.
  </Step>

  <Step title="Die Reihenfolge der Cipher Suites öffnen">
    Klicken Sie unter **SSL Configuration Settings** auf die Einstellung **SSL Cipher Suite Order**.
  </Step>

  <Step title="Zu den Anweisungen scrollen">
    Scrollen Sie im Bereich **SSL Cipher Suite Order** nach unten bis zum Ende.
  </Step>

  <Step title="Die Einstellung ändern">
    Folgen Sie den Anweisungen mit der Bezeichnung **How to modify this setting**.
  </Step>
</Steps>

Damit die Änderungen wirksam werden, müssen Sie den Computer neu starten.

<div id="protection-against-distributed-denial-of-service-attacks">
  ## Schutz vor Distributed-Denial-of-Service-Angriffen
</div>

Bei Distributed-Denial-of-Service-Angriffen (DDoS) wird eine Anwendung mit HTTP-Anfragen überlastet. Dadurch steigt das Datenverkehrsaufkommen erheblich an, und die Anwendung wird für legitime Benutzer unzugänglich. Solche Angriffe sind unter Umständen schwer zu erkennen, da sich legitimer und bösartiger Datenverkehr oft nur schwer voneinander unterscheiden lassen.

Um Ihren Webserver vor DDoS-Angriffen zu schützen, empfehlen wir, Ihren IIS-Server so zu konfigurieren, dass der Zugriff auf Ihre Anwendung blockiert wird, wenn entweder die zulässige Anzahl von Anfragen innerhalb eines bestimmten Zeitraums oder die zulässige Anzahl gleichzeitiger Anfragen überschritten wird.

Gehen Sie wie folgt vor, um den oben beschriebenen DDoS-Schutz in IIS einzurichten:

<Steps>
  <Step title="IIS Manager starten">
    Starten Sie IIS Manager.
  </Step>

  <Step title="IP Address and Domain Restrictions öffnen">
    Wählen Sie Ihre Website in der Baumansicht aus und doppelklicken Sie auf der Startseite der Website auf das Symbol **IP Address and Domain Restrictions**.
  </Step>

  <Step title="Die Einstellungen für dynamische Einschränkungen bearbeiten">
    Klicken Sie im Bereich **Actions** auf **Edit Dynamic Restriction Settings**.
  </Step>

  <Step title="Eine Sperrmethode auswählen">
    Wählen Sie im sich öffnenden Dialogfeld die gewünschte Methode aus: **Deny IP Address based on the number of concurrent requests** oder **Deny IP Address based on the number of requests over a period of time**.
  </Step>

  <Step title="Die Einstellungen speichern">
    Klicken Sie auf **OK**.
  </Step>
</Steps>

In den IIS-Servereinstellungen können Sie den Zugriff auf Ihre Anwendung auch für bestimmte IP-Adressen einschränken und festlegen, welche Aktion der Server ausführen soll, wenn versucht wird, von eingeschränkten IP-Adressen aus auf Ihre Anwendung zuzugreifen:

<Steps>
  <Step title="IIS Manager starten">
    Starten Sie IIS Manager.
  </Step>

  <Step title="IP Address and Domain Restrictions öffnen">
    Wählen Sie Ihre Website in der Baumansicht aus und doppelklicken Sie auf der Startseite der Website auf das Symbol **IP Address and Domain Restrictions**.
  </Step>

  <Step title="Die Einstellungen für dynamische Einschränkungen bearbeiten">
    Klicken Sie im Bereich **Actions** auf **Edit Dynamic Restriction Settings**.
  </Step>

  <Step title="Eine Sperraktion auswählen">
    Wählen Sie im sich öffnenden Dialogfeld den Aktionstyp aus der **Deny Action Type**-Dropdown-Liste aus.
  </Step>

  <Step title="Die Einstellungen speichern">
    Klicken Sie auf **OK**.
  </Step>
</Steps>

Wenn mehrere HTTP-Anfragen von mehreren Benutzern über eine einzige IP-Adresse gesendet werden, aktivieren Sie den Proxymodus in den IIS-Servereinstellungen. Dadurch kann der Proxyserver den Header `x-forwarded-for` an den Webserver weiterleiten, um die Benutzer zu identifizieren.

Gehen Sie wie folgt vor, um den Proxymodus zu aktivieren:

<Steps>
  <Step title="IIS Manager starten">
    Starten Sie IIS Manager.
  </Step>

  <Step title="IP Address and Domain Restrictions öffnen">
    Wählen Sie Ihre Website in der Baumansicht aus und doppelklicken Sie auf der Startseite der Website auf das Symbol **IP Address and Domain Restrictions**.
  </Step>

  <Step title="Die Featureeinstellungen bearbeiten">
    Klicken Sie im Bereich **Actions** auf **Edit Feature Settings**.
  </Step>

  <Step title="Proxymodus aktivieren">
    Wählen Sie im Dialogfeld **Edit IP and Domain Restriction Settings** die Option **Enable Proxy Mode** aus.
  </Step>

  <Step title="Die Einstellungen speichern">
    Klicken Sie auf **OK**.
  </Step>
</Steps>

Weitere Informationen dazu, wie Sie mit IIS den Zugriff auf Ihre Anwendung von bestimmten IP-Adressen aus einschränken, finden Sie in [der Microsoft-Dokumentation](https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-dynamic-ip-address-restrictions).

<Note>
  Die Verwendung des Proxymodus zur Verarbeitung großer Datenmengen kann die Systemleistung beeinträchtigen und legitimen Benutzern den Zugriff auf Ihre Anwendung erschweren.
</Note>
