TsgcWebSocketServer_HTTPAPIEigenschaften › SecurityOptions

SecurityOptions Eigenschaft

Definiert Handshake-Zulassungsregeln: erlaubte Origins und RFC-6455-Handshake-Validierung.

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.

Hinweise

Verwenden Sie OriginsAllowed, um einzuschränken, von welchen Origins der Server WebSocket-Handshakes akzeptiert. Standardmäßig sind alle Origins zulässig; jeder nicht leere Wert aktiviert eine Whitelist, und der Server schließt Verbindungen, deren Origin-Header nicht übereinstimmt. Muster akzeptieren Platzhalter für den Port (zum Beispiel http://127.0.0.1:5555 für einen einzelnen Origin oder http://127.0.0.1:*, um jeden Port auf diesem Host zu akzeptieren). Trennen Sie mehrere Origins mit Kommas. Das Setzen von OriginsAllowed auf einen leeren String stellt den freizügigen Standard wieder her.

EnforceWebSocketVersion und ValidateWebSocketKey härten den eigentlichen WebSocket-Upgrade ab und sind standardmäßig aktiviert. Wenn EnforceWebSocketVersion aktiv ist, beantwortet der Server einen Handshake, der eine andere Version als 13 anfordert, mit HTTP 426 Upgrade Required und einem Sec-WebSocket-Version: 13-Header, anstatt den Upgrade abzuschließen. Wenn ValidateWebSocketKey aktiv ist, lehnt der Server mit HTTP 400 Bad Request jeden Handshake ab, dessen Sec-WebSocket-Key fehlt oder kein 24-stelliger Base64-Wert ist, der zu 16 Bytes dekodiert, wie es RFC 6455 verlangt. Beide Prüfungen gelten nur für den RFC-6455-Pfad, sodass ältere Hixie76-Clients nicht betroffen sind. Setzen Sie eine der beiden nur dann auf False, wenn Sie mit einem nicht konformen Client zusammenarbeiten müssen.

Dieselben Optionen sind auf TsgcWebSocketServer und TsgcWebSocketHTTPServer verfügbar. Um die Größe eingehender Nachrichten zu begrenzen, siehe MaxMessageSize.

Beispiel


oServer := TsgcWebSocketServer_HTTPAPI.Create(nil);
oServer.SecurityOptions.OriginsAllowed := 'http://127.0.0.1:*';
oServer.SecurityOptions.EnforceWebSocketVersion := true;
oServer.SecurityOptions.ValidateWebSocketKey := true;
oServer.Active := true;

Zurück zu Properties