TsgcWebSocketHTTPServer › Properties › 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. |
Gebruik OriginsAllowed om te beperken welke origins de server WebSocket-handshakes van accepteert. Standaard zijn alle origins toegestaan; elke niet-lege waarde schakelt een allowlist in en de server sluit verbindingen waarvan de Origin-header niet overeenkomt. Patronen accepteren jokertekens voor de poort (bijv. 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. Als u OriginsAllowed instelt op een lege string, wordt de permissieve standaardinstelling hersteld.
EnforceWebSocketVersion en ValidateWebSocketKey verstevigen de WebSocket-upgrade zelf en zijn standaard ingeschakeld. Wanneer EnforceWebSocketVersion actief is, beantwoordt de server 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 server 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 en de http.sys-server TsgcWebSocketServer_HTTPAPI. Om de grootte van inkomende berichten te begrenzen, zie MaxMessageSize.
oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.SecurityOptions.OriginsAllowed := 'http://127.0.0.1:*';
oServer.SecurityOptions.EnforceWebSocketVersion := true;
oServer.SecurityOptions.ValidateWebSocketKey := true;
oServer.Active := true;