3.5.2 Referrer-Filter verwalten

LiveCycle stellt einen Referrer-Filter bereit, um Referrer anzugeben, denen der Zugriff auf Serverressourcen erlaubt wird. Der Referrer-Filter filtert standardmäßig keine Anforderungen, die eine sichere HTTP-Methode, z. B. GET, verwenden, es sei denn, CSRF_CHECK_GETS ist auf „true“ festgelegt. Wenn die Anschlussnummer für den Eintrag eines zulässigen Referrers auf 0 festgelegt ist, lässt LiveCycle alle Anforderungen mit Referrern von diesem Host unabhängig von der Anschlussnummer zu. Wenn keine Anschlussnummer angegeben wird, werden nur Anforderungen vom Standardanschluss 80 (HTTP) oder von Anschluss 443(HTTPS) zugelassen. Der Referrer-Filter wird deaktiviert, wenn alle Einträge in der Liste „Zulässige Referrer“ gelöscht werden.

Wenn Sie Document Services zum ersten Mal installieren, wird die Liste für zulässige Referrer mit der Adresse des Servers aktualisiert, auf dem Document Services installiert wird. Die Einträge für den Server enthalten den vollständig Servernamen, die IPv4-Adresse, die IPv6-Adresse, wenn IPv6 aktiviert ist, die Loopback-Adresse und einen „localhost“-Eintrag. Die zur Liste „Zulässige Referrer“ hinzugefügten Namen werden vom Host-Betriebssystem zurückgegeben. Ein Server mit der IP-Adresse 10.40.54.187 enthält beispielsweise folgende Einträge: http://server-name:0, https://10.40.54.187:0, http://127.0.0.1:0, http://localhost:0. Für alle nicht qualifizierten Namen, die vom Host-Betriebssystem zurückgegeben wurden (Namen, die keine IPv4-Adresse, IPv6-Adresse oder qualifizierte Domänennamen haben) wird die Positivliste nicht aktualisiert. Ändern Sie die Liste „Zulässige Referrer“ entsprechend Ihrer Geschäftsumgebung. Stellen Sie den LiveCycle-Server nicht mit der Standardliste „Zulässige Referrer“ in der Produktionsumgebung bereit. Nachdem Sie die zulässigen Referrer, Referrer-Ausnahmen oder URIs geändert haben, müssen Sie den Server neu starten, damit die Änderungen wirksam werden.

Liste „Zulässige Referrer“ verwalten

Sie können die Liste „Zulässige Referrer“ über die User Management-Oberfläche von Administration Console verwalten. Die User Management-Oberfläche stellt Funktionen zum Erstellen, Bearbeiten oder Löschen der Liste bereit. Weitere Informationen zur Verwendung der Liste „Zulässige Referrer“ finden Sie im Abschnitt Verhindern von CSRF-Angriffen der Administration-Hilfe.

Listen „Zulässige Referrer – Ausnahmen“ und „Zulässige URIs“ verwalten

LiveCycle stellt APIs zum Verwalten der Listen „Zulässige Referrer – Ausnahmen“ und „Zulässige URIs“ bereit. Mithilfe dieser APIs können Sie die Listen abrufen, erstellen, bearbeiten oder löschen. Im Folgenden Finden Sie eine Liste mit verfügbaren APIs:

  • createAllowedURIsList

  • getAllowedURIsList

  • updateAllowedURIsList

  • deleteAllowedURIsList

  • addAllowedRefererExceptions

  • getAllowedRefererExceptions

  • updateAllowedRefererExceptions

  • deleteAllowedRefererExceptions

Weitere Informationen zu den APIs finden Sie in der LiveCycle API-Referenz.

Verwenden Sie die Liste LC_GLOBAL_ALLOWED_REFERER_EXCEPTION für „Zulässige Referrer – Ausnahmen“ auf globaler Ebene, d. h. um Ausnahmen zu definieren, die für alle Anwendungen gelten. Diese Liste enthält nur URIs entweder mit einem absoluten Pfad (z. B. /index.html) oder einem relativen Pfad (z. B. /sample/ ). Sie können einen regulären Ausdruck am Ende eines relativen URI, z. B. /sample/(.)* auch anhängen.

Die Listen-ID LC_GLOBAL_ALLOWED_REFERER_EXCEPTIONS wird als Konstante in der Klasse UMConstants des Namespace com.adobe.idp.um.api definiert, der in adobe-usermanager-client.jar zu finden ist. Sie können die LiveCycle-APIs zum Erstellen, Ändern oder Bearbeiten dieser Liste verwenden. Um beispielsweise die Liste für globale zulässigen Referer - Ausnahmen zu verwenden, gehen Sie folgendermaßen vor:

addAllowedRefererExceptions(UMConstants.LC_GLOBAL_ALLOWED_REFERER_EXCEPTION, Arrays.asList("/index.html", "/sample/(.)*")) 

Verwenden Sie die Liste CSRF_ALLOWED_REFERER_EXCEPTIONS für anwendungsspezifische Ausnahmen.

Referrer-Filter deaktivieren

Falls der Referrer-Filter den Zugriff auf den LiveCycle-Server vollkommen sperrt und Sie die Liste „Zulässige Referrer“ nicht bearbeiten können, können Sie das Startskript des Server aktualisieren und den Referrer-Filter deaktivieren.

Fügen Sie das JAVA-Argument „-Dlc.um.csrffilter.disabled=true in das Startskript ein und starten Sie den Server neu. Löschen Sie das JAVA-Argument, nachdem Sie die Liste „Zulässige Referrer“ entsprechend neu konfiguriert haben.

Referrer-Filter für benutzerdefinierte WAR-Dateien

Möglicherweise haben Sie benutzerdefinierte WAR-Dateien für die Verwendung mit LiveCycle speziell für Ihre Geschäftsanforderungen erstellt. Um den Referrer-Filter für Ihre benutzerdefinierten WAR-Dateien zu aktivieren, fügen Sie adobe-usermanager-client.jar in den Klassenpfad für die WAR-Datei und einen Filtereintrag in die Datei web.xml mit den folgenden Parametern ein:

CSRF_CHECK_GETS steuert die Referrer-Prüfung bei GET-Anforderungen. Wenn dieser Parameter nicht definiert wird, wird für den Standardwert „false“ festgelegt. Fügen Sie diesen Parameter nur ein, wenn Sie Ihre GET-Anforderungen filtern möchten.

CSRF_ALLOWED_REFERER_EXCEPTIONS ist die ID der Liste „Zulässige Referrer – Ausnahmen“. Der Referrer-Filter verhindert, dass Anforderungen, die von Referrern in der durch die Listen-ID identifizierten Liste stammen, Ressourcen auf dem LiveCycle-Server aufrufen.

CSRF_ALLOWED_URIS_LIST_NAME ist die ID der Liste „Zulässige URIs“. Der Referrer-Filter blockiert keine Anforderungen für keine der Ressourcen in der Liste, die anhand der Listen-ID angegeben wird, unabhängig vom Wert des Referer-Headers in der Anforderung.

CSRF_ALLOW_NULL_REFERER steuert das Verhalten des Referrer-Filters, wenn der Referrer null oder nicht vorhanden ist. Wenn dieser Parameter nicht definiert wird, wird für den Standardwert „false“ festgelegt. Fügen Sie diesen Parameter nur ein, wenn Sie Null-Referrer zulassen möchten. Das Zulassen eines Null-Referrers kann einige Arten von CSRF-Anriffen ermöglichen.

CSRF_NULL_REFERER_EXCEPTIONS ist eine Liste der URIs, für die keine Referrer-Prüfung durchgeführt wird, wenn der Referrer null ist. Dieser Parameter wird nur aktiviert, wenn für CSRF_ALLOW_NULL_REFERER „false“ festgelegt wird. Trennen Sie mehrere URIs in der Liste mit einem Komma.

Im Folgenden finden Sie ein Beispiel für den Filtereintrag in der Datei web.xml für die WAR-Datei SAMPLE:

<filter> 
       <filter-name> filter-name </filter-name> 
       <filter-class> com.adobe.idp.um.auth.filter.RemoteCSRFFilter </filter-class> 
     <!-- default is false --> 
     <init-param> 
      <param-name> CSRF_ALLOW_NULL_REFERER </param-name> 
      <param-value> false </param-value> 
     </init-param> 
     <!-- default is false --> 
     <init-param> 
      <param-name> CSRF_CHECK_GETS </param-name> 
      <param-value> true </param-value> 
     </init-param> 
     <!-- Optional --> 
     <init-param> 
       <param-name> CSRF_NULL_REFERER_EXCEPTIONS </param-name> 
       <param-value> /SAMPLE/login, /SAMPLE/logout  </param-value> 
     </init-param> 
     <!-- Optional --> 
     <init-param> 
      <param-name> CSRF_ALLOWED_REFERER_EXCEPTIONS </param-name> 
      <param-value> SAMPLE_ALLOWED_REF_EXP_ID </param-value> 
     </init-param> 
     <!-- Optional --> 
     <init-param> 
      <param-name> CSRF_ALLOWED_URIS_LIST_NAME </param-name> 
      <param-value> SAMPLE_ALLOWED_URI_LIST_ID     </param-value> 
     </init-param> 
</filter> 
    ........ 
    <filter-mapping> 
      <filter-name> filter-name </filter-name> 
      <url-pattern>/*</url-pattern> 
    </filter-mapping>

Fehlerbehebung

Wenn rechtmäßige Serveranforderungen vom CSRF-Filter blockiert werden, haben Sie folgende Möglichkeiten:

  • Wenn die abgelehnte Anforderung einen Referrer-Header aufweist, sollten Sie sorgfältig abwägen, ob Sie diesen ggf. der Liste „Zulässige Referrer“ hinzufügen. Fügen Sie nur Referrer hinzu, denen Sie vertrauen.

  • Wenn die abgelehnte Anforderung keinen Referrer-Header aufweist, ändern Sie Ihre Clientanwendung so, dass ein Referrer-Header eingefügt wird.

  • Wenn der Client einen Browser verwenden kann, versuchen Sie es mit diesem Bereitstellungsmodell.

  • Als letzten Ausweg können Sie die Ressource zur Liste „Zulässige URIs“ hinzufügen. Diese Vorgehensweise wird jedoch nicht empfohlen.