!--a11y-->
Sicherheitsrisiko-Liste 
Die Sicherheitsrisiko-Liste oder „White-List“ ermöglicht es, URL-ähnliche Parameter vom Portal in den AS-ABAP zu integrieren. Dazu steht die Methode CL_HTTP_UTILITY=>IF_HTTP_UTILITY~CHECK_HTTP_WHITELIST zur Verfügung.
In der White-List werden Muster konfiguriert, mit denen URLs aus externen Quellen abgeglichen werden. Damit wird verifiziert, dass diese URLs akzeptabel sind. Die White-List ist in der Tabelle HTTP_WHITELIST gespeichert, die über Transaktion SE16 geändert werden kann.
Jeder Tabellensatz hat die folgenden Struktur:
· entry_type
URL-Typ, der mit diesem Eintrag abgeglichen werden soll.
Beispiel: CSS Off-box Referenz
· host
Hostname, der mit dem eingehenden Host verglichen wird. Dieses Feld ist leer, wenn der Hostname nicht für einen spezifischen Eintrag überprüft wird. Der Platzhalter (*) kann verwendet werden.
· protocol
Zu überprüfendes Protokoll. In der Regel HTTP oder HTTPS. Dieses Feld klann leer sein, wenn keine Prüfung durchgeführt wird.
· port
Zu überprüfende Portnummer. Darf nur aus Ziffern bestehen, leer lassen für keine Prüfung.
· url
URL für die Prüfung gegen die eingehende URL. Der Platzhalter (*) kann verwendet werden.
Wenn keine Einträge in der Tabelle HTTP_WHITELIST vorliegen, werden keine Prüfungen durchgeführt.
Sobald die URL mit ihren einzelnen Bestandteilen vorhanden ist, wird sie gegen die Tabelle mit der White-List abgeglichen. Diese Tabelle enthält auch die einzelnen Bestandteile der URL, die eins nach dem anderen abgeglichen werden.
Mit dem entry-type können verschiedene Arten von White-Lists konfiguriert werden. Üblicherweise wird in einer White-List definiert, von welchem Server CSS-Themes geladen werden dürfen. Diese CSS-Themen werden geladen, indem ein mitgelieferter URL-Pointer im HTML generiert wird, der zurück auf den Portal-Server zeigt.
Wenn Parameter nicht spezifiziert sind, werden sie nicht abgeprüft. Es wird davon ausgegangen, dass sie übereinstimmen.
Wenn ein Maskierungszeichen (*) spezifiziert ist, wird es mit dem empfangenen String abgeglichen.
URL-Beispiele
URL |
Standard-Port/Standard-Root |
http://myHost.myDomain.myExt:1080/myUrl |
|
http://myHost.myDomain.myExt/myUrl |
Standard-Port 80 |
https://myHost.myDomain.myExt/myUrl |
Standard-Port 443 |
http://myHost.myDomain.myExt:1080 |
Standard-Root url |
http://myHost.myDomain.myExt |
Standard-Root url |
/myUrl |
Keine Host-Daten angegeben |

· Beispiel 1:
whitelist-protocol = (empty string)
Hier wird implizit angegeben, dass das Protokoll nicht geprüft wird. Alle URLs in der Form http[s]://... oder /... werden durchgelassen, da nicht abgeprüft wird, ob ein Protokoll gesetzt wurde.
· Beispiel 2:
whitelist-protocol = *
Hier wird geprüft, ob das Protokoll mit irgendeinen Wert definiert wurde. Alle URLs in der Form http[s]://... werden durchgelassen. URLs in der Form /... werden jedoch nicht akzeptiert, da nach dieser Regel kein Protokoll verfügbar ist.
· Beispiel 3:
whitelist-protocol = https
Mit dieser Regel werden nur URLs in der Form https://... durchgelassen.
Im einfachsten Fall verwenden Sie einfach eine White-List mit leeren Feldern und führen gar keine Checks durch. Der Zweck der White-List-Tabelle ist es jedoch, einen vom Kunden benötigten Sicherheitsstandard zu bieten.
Beispielsweise können Sie einen Portal-Server haben, der URLs bereitstellt, die auf die Portal-Themens zeigen (CSS-Dateien). Auf einer ersten Sicherheitsebene könnten Sie einen White-List-Filter in der folgenden Form verwenden:
protocol=*, host=*.myDomain.myExt, port=*, url=
Damit würden effektiv alle Referenzen auf anderen Maschinen in der gleichen Domäne akzeptiert.
Es ist auch ein Szenario möglich, nach dem die Last auf diesen einen Portal-Server eingeschränkt werden soll. Das sieht dann folgendermaßen aus:
protocol=*, host=myPortal.myDomain.myExt, port=*, url=
Hier bestehen jedoch noch diverse Sicherheitslücken. Zum Beispiel kann auf dem gleichen Portal-Server auch noch ein Web-Server installiert sein. Der Portal-Server ist sicher, aber der Web-Server nicht unbedingt. Die URLs würden weiterhin die White-List passieren. Um nun Sicherheitslücken völlig zu schließen, sollten Sie daher immer sowohl das Protokoll als auch die Port-Angaben spezifizieren:
protocol=http, host=myPortal.myDomain.myExt, port=1080, url=/*
protocol=https, host=myPortal.myDomain.myExt, port=1443, url=/*
Standardmäßig ist die White-List-Tabelle leer und es werden keine Prüfungen durchgeführt.
Diese Methode prüft, ob eine empfangene URL mit einer White-List übereinstimmt, die in einer lokalen Datenbank abgelegt ist. Dabei ist die URL, die als Eingabeparameter dient, entweder eine absolute URL oder eine Server-spezifische absolute URL.