TsgcWebSocketProxyServer › Eigenschappen › SecurityOptions
Definieert de toelatingsregels voor de handshake: toegestane origins en RFC 6455-handshakevalidatie.
property SecurityOptions: TsgcWSSecurity_Options read FSecurityOptions write SetSecurityOptions;
| Naam | Standaard | Beschrijving |
|---|---|---|
OriginsAllowed | "" | Door komma's gescheiden whitelist van origins die worden geaccepteerd voor browser-WebSocket-handshakes. Leeg staat alle origins toe. |
EnforceWebSocketVersion | True | Weigert een RFC 6455-handshake waarvan de Sec-WebSocket-Version niet 13 is. |
ValidateWebSocketKey | True | Weigert een RFC 6455-handshake waarvan de Sec-WebSocket-Key geen geldige base64-nonce van 16 bytes is. |
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.
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;