A refused terminal handshake answered 200

FixSecurityService
Shipped
3 Septemba 2026, 18:35 UTC
Author
Kamo
Commit
0b36209

Found by probing the deployed endpoint, not by reading it. Returning false from a HandshakeInterceptor aborts the handshake but sets nothing on the response, so every refusal — no ticket, forged ticket, cross-site origin — went out as a bare 200 with an empty body. No socket was ever established and nothing was let through, but from the outside a refusal was indistinguishable from success, and anything monitoring this endpoint would have read one as the other. Now 401 for a ticket that is absent, forged, spent or expired, and 403 for an origin that is not the host being addressed. The reason stays vague on purpose: telling an unknown ticket apart from a spent one is how you probe for which tokens existed. Nine tests over the gate, including the two that matter most — a cross-site handshake is refused BEFORE the ticket is looked at, so a valid ticket presented from another origin is not spent and is still there for the member's own browser; and the client cannot name an account or a session however it decorates the query string, because both come from the ticket.

All changes

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei