TsgcWebSocketLoadBalancerServerEigenschappen › SecurityOptions

SecurityOptions Eigenschap

Definieert de toelatingsregels voor de handshake: toegestane origins en RFC 6455-handshakevalidatie.

Syntaxis

property SecurityOptions: TsgcWSSecurity_Options read FSecurityOptions write SetSecurityOptions;

Members

NaamStandaardBeschrijving
OriginsAllowed""Door komma's gescheiden whitelist van origins die worden geaccepteerd voor browser-WebSocket-handshakes. Leeg staat alle origins toe.
EnforceWebSocketVersionTrueWeigert een RFC 6455-handshake waarvan de Sec-WebSocket-Version niet 13 is.
ValidateWebSocketKeyTrueWeigert een RFC 6455-handshake waarvan de Sec-WebSocket-Key geen geldige base64-nonce van 16 bytes is.

Opmerkingen

Gebruik OriginsAllowed om vast te leggen vanuit welke browser-origins de load balancer WebSocket-handshakes accepteert. Standaard zijn alle origins toegestaan; elke niet-lege waarde schakelt een whitelist in en de load balancer sluit verbindingen waarvan de Origin-header niet overeenkomt, voordat er zelfs maar een backend is geselecteerd. Patronen accepteren wildcards voor de poort (bijvoorbeeld http://127.0.0.1:5555 voor één origin of http://127.0.0.1:* om elke poort op die host te accepteren). Scheid meerdere origins met komma's. Het instellen van OriginsAllowed op een lege string herstelt de permissieve standaard.

EnforceWebSocketVersion en ValidateWebSocketKey verstevigen de WebSocket-upgrade zelf en zijn standaard ingeschakeld. Wanneer EnforceWebSocketVersion actief is, beantwoordt de load balancer een handshake die een andere versie dan 13 aanvraagt met HTTP 426 Upgrade Required en een Sec-WebSocket-Version: 13-header, in plaats van de upgrade te voltooien. Wanneer ValidateWebSocketKey actief is, weigert de load balancer met HTTP 400 Bad Request elke handshake waarvan de Sec-WebSocket-Key ontbreekt of geen base64-waarde van 24 tekens is die decodeert naar 16 bytes, zoals vereist door RFC 6455. Beide controles gelden alleen voor het RFC 6455-pad, zodat legacy Hixie76-clients niet worden beïnvloed. Stel een van beide alleen in op False als u moet samenwerken met een niet-conforme client.

Dezelfde opties zijn beschikbaar op TsgcWebSocketServer, TsgcWebSocketHTTPServer en de http.sys-server TsgcWebSocketServer_HTTPAPI. Om de grootte van inkomende berichten te begrenzen, zie MaxMessageSize.

Voorbeeld


oServer := TsgcWebSocketLoadBalancerServer.Create(nil);
oServer.SecurityOptions.OriginsAllowed := 'https://app.example.com';
oServer.SecurityOptions.EnforceWebSocketVersion := true;
oServer.SecurityOptions.ValidateWebSocketKey := true;
oServer.Active := true;

Terug naar Properties