Sono rimasto piuttosto sorpreso dal fatto che nei miei esperimenti, potevo semplicemente collegarmi da un sito Web a un server WebSocket su una coppia di porte / domini diversa. La ricerca successiva ha ripetutamente dimostrato che WebSockets non rientra nella Stessa politica di origine , quindi questo ha senso.
Tuttavia - perché lo standard WebSocket è definito in questo modo?
Sembra che ci siano due approcci opposti usati sul web:
-
HTTP: a meno che il server Web non abbia una configurazione CORS , ( certo) le richieste di origine incrociata sono impedite dal browser, cioè è una politica di opt-in, rifiuto di
-
WS: a meno che il server WebSocket non verifichi l'intestazione di origine, sono possibili richieste di origine incrociata, ovvero è una opt-out, consente la politica.
Dato che WebSocket è più giovane di HTTP, è solo una cosa storica e WS lo sta facendo correttamente? In caso affermativo, che cosa è suboptimal su CORS? O altrimenti, quale era la logica qui?