TsgcWebSocketProxyServer › Eigenschappen › 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

Use OriginsAllowed to lock down which origins the proxy accepts WebSocket handshakes from before elk traffic is forwarded to the stroomopwaarts server defined in Proxy. Standaard alle origins are allowed; elk non-empty value enables a whitelist and the proxy closes connections whose Origin header does not match. Patterns accept wildcards for de poort (bijvoorbeeld http://127.0.0.1:5555 for a enkel origin or http://127.0.0.1:* to accept elk port on that host). Separate meerdere origins with commas. Setting OriginsAllowed to an empty tekenreeks restores the permissive standaard.

EnforceWebSocketVersion en ValidateWebSocketKey verstevigen de WebSocket-upgrade zelf en zijn standaard ingeschakeld. Wanneer EnforceWebSocketVersion actief is, beantwoordt de proxy 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 proxy 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


oProxy := TsgcWebSocketProxyServer.Create(nil);
oProxy.SecurityOptions.OriginsAllowed := 'http://127.0.0.1:*';
oProxy.SecurityOptions.EnforceWebSocketVersion := true;
oProxy.SecurityOptions.ValidateWebSocketKey := true;
oProxy.Proxy.Host := 'upstream.example.com';
oProxy.Proxy.Port := 8080;
oProxy.Active := true;

Terug naar Properties