TsgcHTTPServer › Eigenschaften › SecurityOptions

SecurityOptions Eigenschaft

Handshake-Zulassungsregeln, die von der gemeinsamen Server-Engine geerbt wurden; die Handshake-Prüfungen gelten nur für den WebSocket-Upgrade-Pfad und werden auf dieser Komponente nie ausgelöst, aber HSTS_Options gilt hier (siehe Hinweise).

Syntax

property SecurityOptions: TsgcWSSecurity_Options read FSecurityOptions write SetSecurityOptions;

Members

NameHinweiseBeschreibung
OriginsAllowed""TsgcWebSocketHTTPServer.SecurityOptions
EnforceWebSocketVersionTrueLehnt einen RFC-6455-Handshake ab, dessen Sec-WebSocket-Version nicht 13 ist.
ValidateWebSocketKeyTrueLehnt einen RFC-6455-Handshake ab, dessen Sec-WebSocket-Key keine gültige 16-Byte-Base64-Nonce ist.
HSTS_Options.EnabledFalseAktiviert den Strict-Transport-Security-Antwort-Header. Siehe Hinweise.
HSTS_Options.MaxAge31536000Wert in Sekunden für die max-age-Direktive des Headers (Standard ist ein Jahr). SSL Labs verlangt mindestens 15552000 (sechs Monate) für eine A+-Bewertung.
HSTS_Options.IncludeSubDomainsFalseFügt includeSubDomains zum Header hinzu. Nur aktivieren, wenn jede Subdomain über HTTPS bereitgestellt wird.
HSTS_Options.PreloadFalseFügt preload zum Header hinzu. Nur für Domains aktivieren, die in die HSTS-Preload-Liste der Browser aufgenommen wurden.

Hinweise

SecurityOptions wird unverändert von der gemeinsamen Server-Engine geerbt, die auch TsgcWebSocketHTTPServer antreibt, wo OriginsAllowed, EnforceWebSocketVersion und ValidateWebSocketKey den WebSocket-Upgrade-Handshake absichern. TsgcHTTPServer führt niemals einen WebSocket-Handshake durch, sodass keine dieser drei Prüfungen jemals auf dieser Komponente ausgeführt wird: Jede Anfrage wird über den einfachen HTTP-Pfad behandelt (OnCommandGet / OnCommandOther / DocumentRoot). Diese drei Member bleiben aus Gründen der Schnittstellenkompatibilität mit der gemeinsamen Engine veröffentlicht; belassen Sie sie bei ihren Standardwerten. Um einzuschränken, welche Client-IPs einen HTTP-Endpunkt erreichen können, verwenden Sie Firewall oder RateLimiter, oder untersuchen Sie den Origin-Header selbst innerhalb von OnBeforeCommand.

HSTS_Options ist die Ausnahme: Es gilt für diese Komponente. Es steuert den in RFC 6797 definierten Strict-Transport-Security-Antwort-Header. Wenn Enabled auf True gesetzt ist, enthält jede über TLS gesendete Antwort einen Strict-Transport-Security-Header, der aus MaxAge, IncludeSubDomains und Preload zusammengesetzt wird, zum Beispiel Strict-Transport-Security: max-age=31536000; includeSubDomains; preload. Der Header wird niemals über einfaches HTTP gesendet, wird übersprungen, wenn die Anwendung bereits einen Strict-Transport-Security-Header für die Antwort gesetzt hat, und wird nicht zu Antworten hinzugefügt, deren Header die Anwendung selbst schreibt (Streaming). HSTS_Options ist nur auf dieser Komponente und auf TsgcWebSocketHTTPServer verfügbar; es hat keine Auswirkung auf TsgcWebSocketServer oder den http.sys-Server TsgcWebSocketServer_HTTPAPI.

Beispiel

OriginsAllowed, EnforceWebSocketVersion und ValidateWebSocketKey werden der Vollständigkeit halber angezeigt; sie haben keine beobachtbare Auswirkung auf TsgcHTTPServer. HSTS_Options.Enabled und HSTS_Options.MaxAge haben eine Auswirkung: Sie fügen den Strict-Transport-Security-Header zu Antworten hinzu, die über TLS gesendet werden.


oServer := TsgcHTTPServer.Create(nil);
oServer.SecurityOptions.OriginsAllowed := 'http://127.0.0.1:*';
oServer.SecurityOptions.EnforceWebSocketVersion := true;
oServer.SecurityOptions.ValidateWebSocketKey := true;
oServer.SecurityOptions.HSTS_Options.Enabled := true;
oServer.SecurityOptions.HSTS_Options.MaxAge := 31536000;
oServer.Active := true;

Zurück zu Properties