mirror of
https://github.com/XTLS/Xray-core.git
synced 2026-07-12 22:58:58 +00:00
feat: use path-based browser dialer csrf endpoint
Agent-Logs-Url: https://github.com/XTLS/Xray-core/sessions/b6b47cc0-5a64-49d5-9447-22c9c202c95d Co-authored-by: RPRX <63339210+RPRX@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
84d04d0eab
commit
2691a1aa0e
@@ -61,23 +61,24 @@ func newDialerInstance(addr string) *dialerInstance {
|
|||||||
token := uuid.New()
|
token := uuid.New()
|
||||||
csrfToken := token.String()
|
csrfToken := token.String()
|
||||||
page := bytes.ReplaceAll(webpage, []byte("csrfToken"), []byte(csrfToken))
|
page := bytes.ReplaceAll(webpage, []byte("csrfToken"), []byte(csrfToken))
|
||||||
|
wsPath := "/websocket/" + csrfToken
|
||||||
dialer := &dialerInstance{
|
dialer := &dialerInstance{
|
||||||
conns: make(chan *websocket.Conn, 256),
|
conns: make(chan *websocket.Conn, 256),
|
||||||
}
|
}
|
||||||
dialer.server = &http.Server{
|
dialer.server = &http.Server{
|
||||||
Addr: addr,
|
Addr: addr,
|
||||||
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
if r.URL.Path == "/websocket" {
|
if r.URL.Path == wsPath {
|
||||||
if r.URL.Query().Get("token") == csrfToken {
|
if conn, err := upgrader.Upgrade(w, r, nil); err == nil {
|
||||||
if conn, err := upgrader.Upgrade(w, r, nil); err == nil {
|
dialer.conns <- conn
|
||||||
dialer.conns <- conn
|
} else {
|
||||||
} else {
|
errors.LogError(context.Background(), "Browser dialer http upgrade unexpected error: ", err)
|
||||||
errors.LogError(context.Background(), "Browser dialer http upgrade unexpected error")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
return
|
||||||
w.Header().Set("Access-Control-Allow-Origin", "*")
|
}
|
||||||
w.Write(page)
|
w.Header().Set("Access-Control-Allow-Origin", "*")
|
||||||
|
if _, err := w.Write(page); err != nil {
|
||||||
|
errors.LogError(context.Background(), "Browser dialer http page write unexpected error: ", err)
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
// Enable a much more aggressive JIT for performance gains
|
// Enable a much more aggressive JIT for performance gains
|
||||||
|
|
||||||
// Copyright (c) 2021 XRAY. Mozilla Public License 2.0.
|
// Copyright (c) 2021 XRAY. Mozilla Public License 2.0.
|
||||||
let url = "ws://" + window.location.host + "/websocket?token=csrfToken";
|
let url = "ws://" + window.location.host + "/websocket/csrfToken";
|
||||||
let clientIdleCount = 0;
|
let clientIdleCount = 0;
|
||||||
let upstreamGetCount = 0;
|
let upstreamGetCount = 0;
|
||||||
let upstreamWsCount = 0;
|
let upstreamWsCount = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user