| Mehr Sicherheit mit "Session State
Security"
Die Möglichkeit,
Seitenelemente per URL anzusteuern, ist eine besonders angenehme
Eigenschaft der HTML DB - dadurch lässt sich die Navigation in
einer Anwendung ganz einfach durch die Verwendung von Links realisieren
(Abbildung 1). Eine kleine Testanwendung
mit den Tabellen EMP
und DEPT steht
Ihnen hier zur Verfügung. Abb.1:
Eine Anwendung mit Bericht und Formular als Ausgangssituation Anderseits
sind Anwendungen so anfällig für
URL-Manipulationen - Kennt man das URL-Format der HTML DB ... ...
so muss man zum Ändern einer Zeile nicht mehr auf den
"Bleistift" klicken - vielmehr kann man das Formular direkt mit der
"richtigen" URL aufrufen: Während
das in diesem Beispiel unproblematisch ist, könnte
es in anderen Anwendungen ein Problem sein - je nachdem wie die
Formulare implementiert sind, ergibt sich vielleicht eine
Sicherheitslücke. Generell lassen sich Probleme dieser Art
bereits im Vorfeld durch Einsatz der Virtual
Private Database, welche
vor einigen Wochen
bereits hier vorgestellt wurde, verhindern. In
diesem Tipp lesen Sie, wie Sie URL-Manipulationen von vorneherein
verhindern können. Die HTML DB bietet ab der Version
2.0 Session State
Security an. Wenn die HTML DB damit den
Sitzungsstatus schützt, ist es nicht mehr möglich,
den Wert von HTML DB-Elementen durch entsprechend formulierte URL zu
ändern. Zum Aktivieren navigieren Sie zunächst zu den
Anwendungsattributen
und von dort aus zu den Sicherheitsattributen. Abb.2:
Aktivieren der "Session State Security" in den Anwendungsattributen
(Sicherheit) Stellen
Sie zunächst den Status
auf Aktiviert und
speichern Sie die
Attribute durch Klick auf die Schaltfläche Änderungen
anwenden (ganz oben rechts). Navigieren Sie dann nochmals
zu den Sicherheitsattributen und
klicken Sie die Schaltfläche
Schutz für den
Session-Status verwalten. Es geht nun um
die Festlegung, welche Seiten und welche Attribute vom Schutz betroffen
sein sollen. Da in unserem Beispiel die Seite 2
geschützt werden soll, klicken Sie Seite an und
wählen
Sie in der dann folgenden Übersicht die Seite 2 aus.
Abb.3: Einstellungen zur "Session
State Security" für Seite 2 Abbildung
3 zeigt Ihnen die Möglichkeiten, Session State Security
für eine in Ihrer Anwendung zu konfigurieren. Die Stati haben folgende
Bedeutung: - Uneingeschränkt
Kein
Schutz - Argumente
müssen
Prüfsumme haben
Die Seite kann per URL
aufgerufen werden,
sollen Elemente jedoch (wie im Beispiel oben) direkt mit
Werten versehen werden, so muss eine Prüfsumme (Checksum)
mitgeliefert werden, - Keine
Argumente
zulässig
Die Seite kann per URL
aufgerufen werden, die
Änderung des Session-Status per URL ist jedoch nicht
möglich. - Kein
URL-Zugriff
Die Seite kann
per URL nicht mehr aufgerufen werde, sie ist nur noch mit HTML
DB-Verzweigungen (Page
Branches) erreichbar.
Die
letzte
Option
ist insbesondere dann interessant, wenn Sie eine bestimmte Navigation
in Ihrer Anwendung auf jeden Fall durchsetzen wollen. Eine Seite kann
dann nicht mehr direkt per URL aufgerufen werden. Die normalen HTML
DB-Verzweigungen funktionieren jedoch auch weiterhin. Wählen
Sie für Ihr Beispiel Argumente
müssen
Prüfsumme (Checksum) haben aus.

Abb.
4: Einstellungen zur Checksumme
für das Element EMPNO Legen
Sie nun noch für jedes Element, welches Sie schützen
möchten, die Ebene
für die Berechnung
der Prüfsumme fest. Sie kann auf Session-,
auf Benutzer-
oder auf Anwendungsebene
berechnet werden. Die
Session-Ebene bietet den höchsten Schutz - macht Bookmarks auf
diese Seite jedoch unmöglich. Wenn Sie dem Anwender noch
erlauben möchten, Bookmarks zu setzen, müssen Sie die
Benutzerebene wählen. Sollen die Bookmarks zwischen
verschiedenen Nutzern
ausgetauscht werden können, wählen Sie
Anwendungsebene. Für dieses Beispiel wählen Sie die
Session-Ebene. Speichern Sie Ihre Änderungen
anschließend ab. Versuchen
Sie nun nochmals, die Seite direkt per URL aufzurufen.
Zunächst ohne Parameter ... ...
das funktioniert wie gehabt. Versuchen Sie
nun, den Session-Status per
URL zu setzen: 
Gehen
Sie nun auf Seite 1 und klicken Sie dort nochmals auf den
"Bleistift". Wenn Sie sich nun die URL ansehen, stellen Sie fest, dass
diese nun eine Prüfsumme (Checksum) enthält. Diese
können Sie nun kopieren ... und innerhalb der gleichen Session
beliebig wiederverwenden. Sobald Sie jedoch eine neue Sitzung starten,
wird sie ungültig. Stellen Sie den Schutz daher im
folgenden so um, dass es möglich wird, die URL als Bookmarks
zu verwenden und ggfs. auszutauschen. Navigieren Sie dazu wieder zu den
Sicherheitsattributen
und von dort aus zur Session-State
Security für Seite 2. Abb.6: Einstellungen zur "Session
State Security" für Seite 2 Stellen
Sie den Elementschutz für P2_EMPNO
nun auf Prüfsumme
erforderlich: Anwendungsebene um. Wenn Sie nun erneut
testen, stellen Sie fest, dass alles genauso funktioniert wie vorhin.
Ein Klick auf den "Bleistift" führt auf das Formular - wenn
Sie die URL jedoch kopieren und in einer anderen Session
wiederverwenden möchten, bekommen Sie die Fehlermeldung. Das
liegt daran, dass die Seite 2 nun zwar eine Prüfsumme auf
Anwendungsebene akzeptiert - das Bericht generiert jedoch eine
Prüfsumme auf Session-Ebene - das ist der Standard. Dies stellen Sie in den Berichtseigenschaften zur Spalte EMPNO ein. Navigieren Sie
dort zum Bereich Link. Abb.7: Berichtseigenschaften: Link
zum Formular (Spalte EMPNO) Stellen
Sie die Berechnung der Seiten-Prüfsumme auf Anwendungsebene um und
speichern Sie Ihre Änderungen. Danach funktioniert die
Anwendung wie gewünscht. Sie können vom Bericht zum
Formular navigieren und darüber hinaus die URL kopieren, in
einer anderen Session wiederverwenden oder sogar einem Kollegen
schicken. Es ist jedoch nicht möglich, den Sitzungsstatus per
URL-Manipulationen zu ändern. Die
Prüfsummenberechnung im Bericht muss sich immer nach dem
Formularelement mit der höchsten Schutzebene richten. Erfordert
nur ein Element im Formular eine Prüfsumme auf Session-Ebene, so
muss der Bericht auch eine solche generieren - Benutzer- oder
Anwendungsebene reichen dann nicht mehr aus. Zurück
zur Community-Seite |