In den Einstellungen der Datenbank können Sie das Zugriffsystem für Ihren Web Server einrichten. Es gibt zwei Authentifizierungsmodi: BASIC Modus und DIGEST Modus. Je nach gewähltem Modus wird die Information zu Benutzername und Kennwort unterschiedlich gesammelt und bearbeitet:
Im BASIC Modus werden vom Benutzer eingegebener Name und Kennwort unverschlüsselt mit der HTTP Anfrage gesendet. Das bietet keine umfassende Systemsicherheit, da diese Information abgefangen und von dritter Stelle weiter verwendet werden kann.
Der Digest Modus bietet eine höhere Sicherheitsstufe, da die Information durch einen nicht umkehrbaren Prozess, genannt Hashing, bearbeitet wird. Auf diese Weise ist es unmöglich, den jeweiligen Inhalt zu dechiffrieren.
Für den Benutzer ist der Authentifizierungsmodus unsichtbar.
Hinweise:
Zur Wahrung der Kompatibilität verwenden 4D Datenbanken, die in Version 11 konvertiert wurden, standardmäßig den Basismodus zur Authentifizierung (wenn die Option “Benutze Kennwörter” in der vorigen Version markiert war). Sie müssen den Digest Modus explizit aktivieren.
Die Digest Authentifizierung ist eine HTTP 1.1. Funktion und wird nicht von allen Browsern unterstützt. So akzeptiert Microsoft Internet Explorer diesen Modus ab Version 5.0. Sendet ein Browser, der diesen Modus nicht unterstützt, eine Anfrage an einen Web Server bei aktivierter Digest Authentifizierung, weist der Server die Anfrage zurück und sendet eine Fehlermeldung an den Browser.
Im Dialogfenster Datenbank-Eigenschaften legen Sie fest, welche Zugriffsoptionen für Ihren Web Server gelten sollen. Wählen Sie dazu unter dem Thema Web die Seite Optionen I:
Im Bereich "Web Kennwörter" gibt es folgende Optionen:
Keine Kennwörter: Damit wird für Verbindungen an den Web Server keine Authentifizierung durchgeführt. Dann gilt folgendes:
Ist die Datenbankmethode On Web Authentication vorhanden, wird sie ausgeführt. Zusätzlich zu $1 und $2 werden die IP-Adressen von Browser und Server ($3 und $4) geliefert, Benutzername und Kennwort ($5 und $6) sind leer. In diesem Fall können Sie die Verbindungen anhand der IP-Adresse des Browsers bzw. der angeforderten IP-Adresse des Servers filtern.
Kennwörter mit BASIC Protokoll: Standard Authentifizierung im Basis Modus. Meldet sich ein Benutzer an den Server an, erscheint ein Dialogfenster auf dem Browser, wo er Benutzername und Kennwort eingibt. Diese beiden Werte sowie die Verbindungsparameter (IP Adresse und Port, URL...) werden an die Datenbankmethode On Web Authentication gesendet, die nun ablaufen kann. Dieser Modus bietet Zugriff auf die Option Benutze 4D Kennwörter, so dass Sie an Stelle oder zusätzlich zu Ihrem eigenen Kennwortsystem das Kennwortsystem der 4D Datenbank (wie in 4D definiert) nutzen können.
Kennwörter mit DIGEST Protokoll: Authentifizierung im Digest Modus. Benutzer müssen, analog zum BASIC Modus, Name und Kennwort eingeben. Diese beiden Werte sowie die Verbindungsparameter (IP Adresse und Port, URL...) werden verschlüsselt an die Datenbankmethode On Web Authentication gesendet. Sie müssen einen Benutzer mit der 4D Funktion WEB Validate Digest authentifizieren.
Hinweise:
Sie müssen den Web Server neu starten, damit diese Parameter berücksichtigt werden.
Beachten Sie beim Web Server von 4D Client, dass alle Sites, die Client-Rechner veröffentlichen, auf dieselbe Benutzerliste zugreifen. Die Bestätigung von Benutzern/Kennwörtern erfolgt über die 4D Server Anwendung.
Sie erhalten je nach Einstellung unterschiedliche Ergebnisse:
Die Option "Kennwörter mit BASIC Protokoll" ist ausgewählt, "Verwende 4D Kennwörter" ist nicht ausgewählt
Gibt es die Datenbankmethode On Web Authentication, wird sie ausgeführt und alle Parameter werden zurückgegeben. So können Sie die Verbindungen genauer filtern, d.h. nach Benutzername, Kennwort und/oder IP-Adressen der Browser oder Web Server.
Gibt es die Datenbankmethode On Web Authentication nicht, wird die Verbindung automatisch zurückgewiesen. Der Browser erhält eine Meldung, dass die Datenbankmethode nicht vorhanden ist.
Hinweis: Ist der vom Browser gesendete Benutzername ein leerer String und gibt es die Datenbankmethode On Web Authentication nicht, erhält der Browser den Kennwortdialog.
Die Optionen "Kennwörter mit BASIC Protokoll " und "Verwende 4D Kennwörter" sind ausgewählt
Gibt es den vom Browser gesendeten Benutzernamen in der Tabelle der 4D Benutzer und ist das Kennwort korrekt, wird die Verbindung angenommen. Ist das Kennwort falsch, wird die Verbindung zurückgewiesen.
Gibt es den vom Browser gesendeten Benutzernamen nicht in 4D, sind zwei Ergebnisse möglich:
Gibt es die Datenbankmethode On Web Authentication, werden die Parameter $1, $2, $3, $4, $5 und $6 zurückgegeben. Sie können dann die Verbindungen nach Benutzername, Kennwort und/oder IP Adresse des Browsers oder Web Servers filtern.
Der DIGEST Modus ist, im Gegensatz zum BASIC Modus, nicht mit den standardmäßigen 4D Kennwörtern kompatibel: Sie können 4D Kennwörter nicht als Web-Kennung verwenden. Bei diesem Modus erscheint die Option “4D Kennwörter einfügen” in Grauschrift. Sie müssen die Kennung für Web Benutzer selbst verwalten, z.B. über eine Tabelle. Ist der DIGEST Modus aktiviert, wird der Parameter $6 (Kennwort) in der Datenbankmethode On Web Authentication immer leer zurückgegeben. In diesem Modus läuft diese Information nicht als Klartext (unverschlüsselt) über das Netz. Deshalb müssen Verbindungsanfragen unbedingt mit der 4D Funktion WEB Validate Digest ausgewertet werden
Die Funktionsweise des 4D Web Server Zugriffssystems im Überblick:
Bestimmte Roboter (Suchmaschinen, Netze...) scrollen durch die Web Server und statische Seiten. Sollen Roboter Zugriff auf Ihre ganze Web-Site erhalten, können Sie festlegen, auf welche URLs sie nicht zugreifen dürfen. Legen Sie dazu die Datei ROBOTS.TXT auf den Root des Servers. Sie muss folgende Struktur haben:
User-Agent: <name> Disallow: <URL> oder <beginning of the URL>
“User-Agent: *” bedeutet, dass alle Roboter betroffen sind. “Disallow: /4D” bedeutet, dass Roboter nicht auf URLs zugreifen können, die mit /4D beginnen. “Disallow: /%23%23” bedeutet, dass Roboter nicht auf URLs zugreifen können, die mit /%23%23 beginnen. “Disallow: /GIFS/’ bedeutet, dass Roboter nicht auf /GIFS/ Ordner oder dessen Unterordner zugreifen können.
Weiteres Beispiel:
User-Agent: * Disallow: /
In diesem Fall können Roboter nicht auf die ganze Web-Site zugreifen.
Sie können einen Benutzer, der zuvor in der 4D Kennworttabelle definiert wurde, als allgemeinen Web-Anwender festlegen. In diesem Fall kann jeder Browser, der die Verbindung zur Datenbank herstellt, die diesem generischen Benutzer zugeordneten Zugriffsrechte und Einschränkungen nutzen. So können Sie den Zugriff des Browsers auf die verschiedenen Teile der Datenbank einfach steuern.
Hinweis: Verwechseln Sie diese Option nicht mit dem Steuerungssystem der Web Server Verbindung. Mit “allgemeiner Web Anwender” können Sie den Zugriff des Browsers auf verschiedene Teile der Datenbank einschränken (Tabellen, Menüs, etc.). Das Steuerungssystem der Web Server Verbindung arbeitet mit dem Kennwortsystem und der Datenbankmethode On Web Authentication.
Um einen allgemeinen Web-Anwender zu definieren, gehen Sie folgendermaßen vor:
Legen Sie im Designmodus im Kennworteditor einen Benutzer an. Sie können dem Benutzer bei Bedarf ein Kennwort zuordnen.
Legen Sie in den verschiedenen 4D Editoren die Zugriffsrechte bzw. -einschränkungen für diesen Benutzer fest.
Klicken Sie im Dialogfenster Datenbank-Eigenschaften unter dem Thema Web auf die Seite Optionen (I). Standardmäßig ist der Designer der allgemeine Web-Anwender, die Browser können auf die gesamte Datenbank zugreifen.
Wählen Sie einen Benutzer in der Liste “Allgemeiner Web-Anwender” und bestätigen Sie den Dialog.
Alle Web Browser, die berechtigt sind, sich an die Datenbank anzumelden, können die diesem allgemeinen Web-Anwender zugewiesenen Zugriffsrechte bzw. -einschränkungen nutzen. Das gilt nur dann nicht, wenn die Optionen BASIC Modus und “Verwende 4D Kennwörter” markiert sind und der Benutzer, der die Verbindung herstellt, in der 4D Kennworttabelle nicht vorhanden ist. (siehe unten).
Die Option "Kennwörter mit BASIC Protokoll" hat keinen Einfluss auf die Funktionsweise des allgemeinen Web-Anwenders. Unabhängig von dieser Option gelten alle Zugriffsrechte bzw. -einschränkungen des “allgemeinen Web-Anwender” für alle Web Browser, die berechtigt sind, sich an die Datenbank anzuschließen.
Ist dagegen die Option “Verwende 4D Kennwörter” ausgewählt, gibt es zwei Möglichkeiten:
Es gibt Benutzername und Kennwort NICHT in der Kennworttabelle von 4D. Wird nun die Verbindung von der Datenbankmethode On Web Authentication angenommen, gelten die Zugriffsrechte des allgemeinen Web-Anwenders für den Browser.
Es gibt Benutzername und Kennwort in der Kennworttabelle von 4D. Dann wird der Parameter “allgemeiner Web-Anwender” ignoriert. Der Benutzer meldet sich mit seinen eigenen Zugriffsrechten an.
Mit dieser Option bestimmen Sie den Ordner, in welchem 4D nach den statischen HTML Seiten und den Bildern sucht, die an die Browser gesendet werden sollen. Darüberhinaus legt der Ordner HTML Root fest, bis zu welcher Ebene in der Hierarchie nicht mehr auf die Dateien zugegriffen werden kann. Diese Einschränkung gilt für die URLs, die an Web Browser sowie an Befehle des 4D Web Server gesendet werden, wie z.B. WEB SEND FILE. Sendet der Browser eine URL an die Datenbank oder versucht ein 4D Befehl, auf eine Datei zuzugreifen, die in der Hierarchie oberhalb des Ordners HTML Root liegt, erhalten Sie eine Fehlermeldung. Sie gibt an, dass die Datei nicht gefunden wurde.
4D geht standardmäßig von einem Ordner HTML Root mit Namen WebFolder aus. Ist er noch nicht vorhanden, wird er physisch auf der Festplatte erstellt, wenn der Web Server zum ersten Mal gestartet wird. Wollen Sie diese Standardeinstellungen beibehalten, wird er folgendermaßen angelegt:
Mit 4D im lokalen Modus und 4D Server auf derselben Ebene wie die Strukturdatei der Datenbank. Hinweis: Bei einer kompilierten doppelklickbaren Anwendung liegt die Strukturdatei im Database Unterordner.
Mit 4D im remote Modus im lokalen Ordner der 4D Datenbank (siehe Funktion Get 4D folder). Anschließend müssen Sie lediglich die erforderlichen Elemente, wie statische Seiten, Bilder, in diesen Ordner kopieren.
Wollen Sie den Ordner bewegen bzw. umbenennen oder einen anderen Ordner verwenden, müssen Sie die Datenbank-Eigenschaften anpassen. Gehen Sie dazu unter dem Thema Web auf die Seite Konfiguration:
Geben Sie im Eingabebereich “Standard HTML Root” den neuen Zugriffspfad für den gewünschten Ordner an. Der hier eingetragene Zugriffspfad ist relativ: Er wird von dem Ordner mit der Struktur der Datenbank festgelegt (4D im lokalen Modus oder 4D Server) oder vom Ordner mit der 4D Anwendung oder dem 4D Software Paket (4D im remote Modus). Damit Ihre Datenbank auf mehreren Plattformen laufen kann, verwendet der 4D Web Server zum Beschreiben der Zugriffspfade spezifische Syntaxregeln:
Ordner werden durch Schrägstrich (“/”) voneinander getrennt
Der Zugriffspfad darf nicht mit einem Schrägstrich (“/”) enden
Wollen Sie in der Ordnerhierarchie eine Ebene höher gehen, geben Sie vor dem Ordner zwei Punkte (“..”) ein
Der Zugriffspfad darf nicht mit einem Schrägstrich (“/”) beginnen, außer der HTML Root Ordner soll der Datenbankordner oder der 4D remote Ordner sein (siehe unten).
Soll der Ordner HTML Root zum Beispiel der “Web” Unterordner im Ordner “4DDatenbank” sein, schreiben Sie 4DDatenbank/Web Soll der Ordner HTML Root der Datenbank/4D remote Ordner sein, jedoch der Zugriff auf darüberliegende Ordner untersagt sein, geben Sie “/” in den Bereich ein. Soll der Zugriff auf alle Volumes möglich sein, lassen Sie den Bereich “Standard HTML Root” leer.
Warnung: Definieren Sie im Dialogfenster Datenbank-Eigenschaften keinen Standardordner HTML Root, wird der Ordner verwendet, der die Strukurdatei der Datenbank oder der 4D Anwendung enthält. Seien Sie vorsichtig, denn in diesem Fall gibt es keine Zugriffsbeschränkungen. Benutzer haben Zugriff auf alle Ordner.
Hinweise:
Wird der HTML Root Ordner im Dialogfenster Datenbank-Eigenschaften geändert, wird der Cache geleert, damit keine Dateien mit beschränktem Zugriff gespeichert werden.
Sie können den Ordner HTML Root auch dynamisch über den Befehl WEB SET ROOT FOLDER ändern. Die Änderung gilt dann für alle Web Prozesse für die Arbeitssitzung. Der Cache der HTML Seiten wird deshalb geleert.
Mit den spezifischen URL 4DACTION, sowie den Tags 4DSCRIPT, 4DTEXT, 4DHTML (sowie den früheren Tags 4DVAR und 4DHTMLVAR) können Sie die Ausführung jeder Projektmethode in einer 4D Datenbank auslösen, die im Web veröffentlicht wird: Die Anfrage http://www. server.com/4DACTION/Anzeigen löst z.B. die Projektmethode Anzeigen aus, wenn diese vorhanden ist.
Dieser Mechanismus bedeutet jedoch ein Sicherheitsrisiko für die Datenbank, insbesondere, wenn ein Internet Benutzer absichtlich oder auch versehentlich eine Methode auslöst, die nicht über das Web ausgeführt werden soll. Es gibt drei Möglichkeiten, dies zu verhindern:
Sie beschränken den Zugriff auf Projektmethoden über das 4D Kennwortsystem. Zur Erinnerung: Dieses System erfordert den Einsatz von 4D Kennwörtern und unterbindet jegliche Methodenausführung. Dazu gehört auch der Einsatz von HTML Tags.
Sie filtern die über URLS aufgerufenen Methoden über die Datenbankmethode On Web Authentication. Beachten Sie jedoch, dass dieses System schwer zu verwalten ist, wenn die Datenbank eine große Anzahl Methoden enthält.
Sie verwenden die Option "Verfügbar durch 4D HTML Tags und URLs (4DACTION...) aus dem Dialogfenster Methode-Eigenschaften:
Mit dieser Option können Sie jede Projektmethode einzeln bestimmen, die über die spezifischen URL 4D ACTION oder die Tags 4DSCRIPT, 4DTEXT und 4DHTML (4DVAR und 4DHTMLVAR) aufrufbar sind. Ist sie nicht markiert, kann die entsprechende Projektmethode nicht über eine HTTP Anfrage ausgeführt werden, die ein spezielles URL oder Tag enthält. Bei anderen Aufrufen wie Formularen oder anderen Methoden sind sie dagegen ausführbar.
Die Option ist für erstellte Datenbanken standardmäßig inaktiv. Sie müssen Methoden, die über die Web URL 4DACTION oder die Tags ausführbar sind, einzeln angeben.
Im Explorer erhalten Projektmethoden mit dieser Eigenschaft folgenden Icon:
Über diese Option auf der Seite "Web/Konfiguration" der Datenbank-Eigenschaften können Sie die Unterstützung von Anfragen mit /4DSYNC URLs steuern. Diese URLs dienen zum Synchronisieren von Daten über HTTP. Weitere Informationen dazu finden Sie unter URL 4DSYNC/.
Damit können Sie die spezifische Bearbeitung von Anfragen mit /4DSYNC aktivieren bzw. deaktivieren:
Ist die Option nicht markiert, werden /4DSYNC Anfrage als standardmäßige Anfragen gewertet und erlauben keine spezifische Bearbeitung. So wird bei einer Synchronisationsanfrage eine Antwort vom Typ "404 - Ressource nicht verfügbar" gesendet.
Ist die Option markiert, wird der Synchronisationsmechanismus aktiviert. /4DSYNC Anfragen werden dann als spezielle Anfragen gewertet und vom 4D HTTP Server analysiert.
Standardmäßig gilt:
Diese Option ist nicht markiert in Anwendungen, die mit 4D ab Version 13 erstellt wurden .
Zur Wahrung der Kompatibilität ist diese Option in Anwendungen markiert, die aus einer älteren 4D Version konvertiert wurden. Wir empfehlen, sie zu deaktivieren, falls Ihre Anwendung nicht die Funktion HTTP Replikation verwendet.
Die Reichweite dieser Option gilt lokal für die Anwendung. Der Web Server muss erneut gestartet werden, damit sie berücksichtigt wird.