TsgcWebSocketHTTPServerWłaściwości › SecurityOptions

SecurityOptions Właściwość

Definiuje reguły dopuszczania uzgadniania połączeń: dozwolone origin oraz walidację uzgadniania połączeń RFC 6455.

Składnia

property SecurityOptions: TsgcWSSecurity_Options read FSecurityOptions write SetSecurityOptions;

Składowe

NazwaDomyślnieOpis
OriginsAllowed""Lista dozwolonych origin (rozdzielona przecinkami) akceptowanych przy uzgadnianiu połączeń WebSocket z przeglądarki. Wartość pusta zezwala na wszystkie origin.
EnforceWebSocketVersionTrueOdrzuca uzgadnianie połączenia RFC 6455, którego Sec-WebSocket-Version nie jest równa 13.
ValidateWebSocketKeyTrueOdrzuca uzgadnianie połączenia RFC 6455, którego Sec-WebSocket-Key nie jest prawidłowym 16-bajtowym wartością nonce w base64.

Uwagi

Należy użyć właściwości OriginsAllowed, aby ograniczyć originy, z których serwer akceptuje uzgadnianie WebSocket. Domyślnie akceptowane są wszystkie originy; podanie dowolnej niepustej wartości włącza białą listę i serwer zamyka połączenia, których nagłówek Origin nie pasuje. Wzorce akceptują symbole wieloznaczne dla portu (np. http://127.0.0.1:5555 dla jednego originu lub http://127.0.0.1:* dla dowolnego portu na tym hoście). Wiele originów należy oddzielać przecinkami. Ustawienie OriginsAllowed na pusty ciąg przywraca domyślne, otwarte zachowanie.

EnforceWebSocketVersion i ValidateWebSocketKey wzmacniają samo przejście (upgrade) do WebSocket i są domyślnie włączone. Gdy EnforceWebSocketVersion jest aktywne, serwer odpowiada na uzgadnianie połączenia żądające wersji innej niż 13 statusem HTTP 426 Upgrade Required i nagłówkiem Sec-WebSocket-Version: 13, zamiast zakończyć upgrade. Gdy ValidateWebSocketKey jest aktywne, serwer odrzuca statusem HTTP 400 Bad Request każde uzgadnianie połączenia, którego Sec-WebSocket-Key jest brakujący lub nie jest 24-znakową wartością base64 dekodującą się do 16 bajtów, zgodnie z wymaganiami RFC 6455. Obie kontrole dotyczą wyłącznie ścieżki RFC 6455, więc starsi klienci Hixie76 nie są nimi objęci. Ustaw którąkolwiek na False tylko wtedy, gdy musisz zachować współdziałanie z niezgodnym klientem.

Te same opcje są dostępne w TsgcWebSocketServer oraz w serwerze http.sys TsgcWebSocketServer_HTTPAPI. Aby ograniczyć rozmiar przychodzących wiadomości, zobacz MaxMessageSize.

Przykład


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

Wróć do Właściwości