Und das Schöne an 'nem eigenen WebServer: Er kann wirklich das und nur das, was man benötigt.
Stimmt.
Ein eigener, selbstgebauter WebServer kann aber dafür auch alle möglichen sicherheitskritischen Probleme haben, je nach Umfang,
denn da testen im Prinzip nur Wenige und nicht Millionen User in Tausenden von Einsatz-Szenarien.
Kann sein dass man das im lokalen Netz akzeptiert, aber im echten Web hätte ich da ziemliche Bauchschmerzen.
Ich glaube man sollte heutzutage nicht alles versuchen selber zu machen, es sei denn man hat das als Hobby.
Ich käme nie auf die Idee, einen WebServer für das weltweite Internet zu bauen.
Es geht hier doch nur darum zu versuchen ob es geht. Zum Lernen, zum Probieren, sicherlich nicht um eine kommerzielle Software zu erstellen, die mit vorhandenen WebServeren auch nur im leisesten Ansatz konkurieren kann.
Hiermit
Delphi-Quellcode:
sFilename := Format('%s%s',['htdocs',ARequestinfo.Document]);
if not FileExists(sFilename) then sFilename := 'htdocs/index.html';
hat man schonmal keinen Zugriff mehr auf die gesamte Festplatte, sondern nur auf die Dateien, die unter htdocs liegen. Wo das physikalisch liegt, ist von außen nicht erkennbar. Sinnvollerweise macht man das konfigurierbar und sorgt dafür, dass die Rechte entsprechend eingeschränkt sind.
Über ARequestinfo bekommt man auch die
IP des Anfragers heraus, hierüber kann man dann auch nochmal die Zugriffe einschränken. Ein eigener WebServer muss nicht auf Port 80 oder 8080 laufen, wie meist üblich bzw. vorgegeben.
Mögliche sicherheitskritische Probleme hat ein eigener WebServer alle die, die man sich auch sonst mit Delphiprogrammen "einfangen" kann, also z. B. auch alle die, die in den Indykomponenten enthalten sein könnten, ... und natürlich alle die, die man selbst einbaut