diff --git a/cmd/syncthing/gui.go b/cmd/syncthing/gui.go index a5ababd17..964786166 100644 --- a/cmd/syncthing/gui.go +++ b/cmd/syncthing/gui.go @@ -52,6 +52,7 @@ var ( ) type apiSvc struct { + id protocol.DeviceID cfg config.GUIConfiguration assetDir string model *model.Model @@ -62,8 +63,9 @@ type apiSvc struct { eventSub *events.BufferedSubscription } -func newAPISvc(cfg config.GUIConfiguration, assetDir string, m *model.Model, eventSub *events.BufferedSubscription) (*apiSvc, error) { +func newAPISvc(id protocol.DeviceID, cfg config.GUIConfiguration, assetDir string, m *model.Model, eventSub *events.BufferedSubscription) (*apiSvc, error) { svc := &apiSvc{ + id: id, cfg: cfg, assetDir: assetDir, model: m, @@ -188,14 +190,14 @@ func (s *apiSvc) Serve() { // Wrap everything in CSRF protection. The /rest prefix should be // protected, other requests will grant cookies. - handler := csrfMiddleware("/rest", s.cfg.APIKey, mux) + handler := csrfMiddleware(s.id.String()[:5], "/rest", s.cfg.APIKey, mux) - // Add our version as a header to responses - handler = withVersionMiddleware(handler) + // Add our version and ID as a header to responses + handler = withDetailsMiddleware(s.id, handler) // Wrap everything in basic auth, if user/password is set. if len(s.cfg.User) > 0 && len(s.cfg.Password) > 0 { - handler = basicAuthAndSessionMiddleware(s.cfg, handler) + handler = basicAuthAndSessionMiddleware("sessionid-"+s.id.String()[:5], s.cfg, handler) } // Redirect to HTTPS if we are supposed to @@ -334,9 +336,10 @@ func noCacheMiddleware(h http.Handler) http.Handler { }) } -func withVersionMiddleware(h http.Handler) http.Handler { +func withDetailsMiddleware(id protocol.DeviceID, h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Set("X-Syncthing-Version", Version) + w.Header().Set("X-Syncthing-ID", id.String()) h.ServeHTTP(w, r) }) } diff --git a/cmd/syncthing/gui_auth.go b/cmd/syncthing/gui_auth.go index e95e58d8d..8d515abe4 100644 --- a/cmd/syncthing/gui_auth.go +++ b/cmd/syncthing/gui_auth.go @@ -24,14 +24,15 @@ var ( sessionsMut = sync.NewMutex() ) -func basicAuthAndSessionMiddleware(cfg config.GUIConfiguration, next http.Handler) http.Handler { +func basicAuthAndSessionMiddleware(cookieName string, cfg config.GUIConfiguration, next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if cfg.APIKey != "" && r.Header.Get("X-API-Key") == cfg.APIKey { next.ServeHTTP(w, r) return } - cookie, err := r.Cookie("sessionid") + cookie, err := r.Cookie(cookieName) if err == nil && cookie != nil { sessionsMut.Lock() _, ok := sessions[cookie.Value] @@ -86,7 +87,7 @@ func basicAuthAndSessionMiddleware(cfg config.GUIConfiguration, next http.Handle sessions[sessionid] = true sessionsMut.Unlock() http.SetCookie(w, &http.Cookie{ - Name: "sessionid", + Name: cookieName, Value: sessionid, MaxAge: 0, }) diff --git a/cmd/syncthing/gui_csrf.go b/cmd/syncthing/gui_csrf.go index a30d1faad..47bf6ccb7 100644 --- a/cmd/syncthing/gui_csrf.go +++ b/cmd/syncthing/gui_csrf.go @@ -24,7 +24,7 @@ var csrfMut = sync.NewMutex() // Check for CSRF token on /rest/ URLs. If a correct one is not given, reject // the request with 403. For / and /index.html, set a new CSRF cookie if none // is currently set. -func csrfMiddleware(prefix, apiKey string, next http.Handler) http.Handler { +func csrfMiddleware(unique, prefix, apiKey string, next http.Handler) http.Handler { loadCsrfTokens() return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // Allow requests carrying a valid API key @@ -35,10 +35,10 @@ func csrfMiddleware(prefix, apiKey string, next http.Handler) http.Handler { // Allow requests for the front page, and set a CSRF cookie if there isn't already a valid one. if !strings.HasPrefix(r.URL.Path, prefix) { - cookie, err := r.Cookie("CSRF-Token") + cookie, err := r.Cookie("CSRF-Token-" + unique) if err != nil || !validCsrfToken(cookie.Value) { cookie = &http.Cookie{ - Name: "CSRF-Token", + Name: "CSRF-Token-" + unique, Value: newCsrfToken(), } http.SetCookie(w, cookie) @@ -54,7 +54,7 @@ func csrfMiddleware(prefix, apiKey string, next http.Handler) http.Handler { } // Verify the CSRF token - token := r.Header.Get("X-CSRF-Token") + token := r.Header.Get("X-CSRF-Token-" + unique) if !validCsrfToken(token) { http.Error(w, "CSRF Error", 403) return diff --git a/cmd/syncthing/main.go b/cmd/syncthing/main.go index 475cc5383..3fe62c2cb 100644 --- a/cmd/syncthing/main.go +++ b/cmd/syncthing/main.go @@ -808,7 +808,7 @@ func setupGUI(mainSvc *suture.Supervisor, cfg *config.Wrapper, m *model.Model, a urlShow := fmt.Sprintf("%s://%s/", proto, net.JoinHostPort(hostShow, strconv.Itoa(addr.Port))) l.Infoln("Starting web GUI on", urlShow) - api, err := newAPISvc(guiCfg, guiAssets, m, apiSub) + api, err := newAPISvc(myID, guiCfg, guiAssets, m, apiSub) if err != nil { l.Fatalln("Cannot start GUI:", err) } diff --git a/gui/scripts/syncthing/app.js b/gui/scripts/syncthing/app.js index 1578e1592..1ec2653d7 100644 --- a/gui/scripts/syncthing/app.js +++ b/gui/scripts/syncthing/app.js @@ -17,10 +17,9 @@ var syncthing = angular.module('syncthing', [ var urlbase = 'rest'; var guiVersion = null; +var deviceId = null; syncthing.config(function ($httpProvider, $translateProvider, LocaleServiceProvider) { - $httpProvider.defaults.xsrfHeaderName = 'X-CSRF-Token'; - $httpProvider.defaults.xsrfCookieName = 'CSRF-Token'; $httpProvider.interceptors.push(function () { return { response: function (response) { @@ -30,6 +29,14 @@ syncthing.config(function ($httpProvider, $translateProvider, LocaleServiceProvi } else if (guiVersion != responseVersion) { document.location.reload(true); } + if (!deviceId) { + deviceId = response.headers()['x-syncthing-id']; + if (deviceId) { + var deviceIdShort = deviceId.substring(0, 5); + $httpProvider.defaults.xsrfHeaderName = 'X-CSRF-Token-' + deviceIdShort; + $httpProvider.defaults.xsrfCookieName = 'CSRF-Token-' + deviceIdShort; + } + } return response; } }; diff --git a/internal/auto/gui.files.go b/internal/auto/gui.files.go index 3807143c4..d29f3927a 100644 --- a/internal/auto/gui.files.go +++ b/internal/auto/gui.files.go @@ -5,7 +5,7 @@ import ( ) const ( - AssetsBuildDate = "Sun, 21 Jun 2015 09:45:37 GMT" + AssetsBuildDate = "Mon, 22 Jun 2015 18:48:43 GMT" ) func Assets() map[string][]byte { @@ -50,7 +50,7 @@ func Assets() map[string][]byte { assets["assets/lang/valid-langs.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/yTMsQrCMBSF4d2nCJm9jyBIRRwUlVhwEIe0jW1oSEuSZvDpe0+6fH8ugZN1EFk7292076M4iI9sermXrS4c+c/41pYrMp1hjAO+QJcKjQU6v7g/CwIzLIxNzDjRVXEdDt8AjHiMzHjNiSq19Vlzw0TqgWIiZiZhcRmZ/0Cn+9b6Lb+7FQAA//8BAAD//9+xfOrFAAAA") assets["index.html"], _ = base64.StdEncoding.DecodeString("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") assets["modal.html"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/3yTUW+bMBDH3/cpbjwsrVRCW/UpSzptkSZN6qRK7csejX2AV2Mj+0jHEN99h2EsrdI9JDbmfnf3/5/ZKn0AaUQIu6R2ShgohMIESOTaKvy1S9KrBGyZCiKfKkEizYV8Ut41u6TvGXUB4ROQbxE2sAokSMsVDMMr6gm73AmvIvXFOYPCnkX6fAy+fQewfZ+mvGQZ7F3TeV1WBGf7c7i+vLqBxwrhobOSKm1L+NxS5XxYx/CJeax0gAfXeonMK4SvztfAZ6HNf6IkIAfESQh9HcAV8eG7+62NEXDf5kbLKdGdlmgDXsBhDdfryzV8K0CA5JYW6v4OnkUA6wiUDuR13hIqeNZUcQDXLLTBiyndD9eCFBZcTkLzYhEEQUXUbLKsnuqvnS8zzppxvWwUlabRkNfDSZUWxpXR2vm8X01vTLnagBG+xMnMU7R0ltDS/P5URIU8fQ/CoKfpP+37caZtGIaFY7K6eQmSJoNHARwSGlbNjepil2gunfwlStM11XgCy46rjMtYY5uN4HGmvo/Zh+Ff+ay6WURkrOJtRblTXfSLvLBBmlbh2+TcbbyWycs8hXN8c44t4JkTa6CuwV0yPSxMThb4lyosRGso7kOdQPwU+MrUesnMiqNT/zHHY+0OuFjzAevQfJyoqMoIwtv92PQcsc2mfk4oXbbzZl7+AAAA//8BAAD//53P618IBAAA") - assets["scripts/syncthing/app.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/5RXbXPUthN/f59iM8NgO9z5Lvz59yFHmNKEFNqEpFyg0ExeyLbsU5AtV5IvCUy+e1eSHxNnKB7g7NXub1e/fZCYz2FflDeSZWsN/n4ATxc7z+BsTWF1U8R6zYoMXlZ6LaQKJ/M5/sFFpmAlKhlTtE0oHAqZA8pUFV3SWIMWoBFAU5krEKn9OBZfGOcETquIs9jAHLGYFopOYRPC03ARwpsUCMQYTGtzegRXREEhNCRMacmiStMErpheowJ6TBmnUwP2SVQQkwJEpAnDn4IC0bDWutydz3PnOxQymyPmHL3Nw8lkMt++VJwVGiIprhSVu6BlhQHFotCsqGjzXfJKmb/uG7aRhe2Mi4hweLQLKeFmF6TIKk5k+40gSnDafm8IZ8kRaqlaZHAmGyJBtUTvNShhLpKKU99r17wpnE8AH69Wea8ZV2HCJDLONtS+npKMFUQzUXhTp1wSFRNeotJah1qSQnGiKa665RY+jIWk3uQiWLqYKskjgjHugSep0t7SSrOKfaBSIT4uFBXnqN2HKFKW+WmFAqPiPzL8n0qxYQmVU3jU+u9kRwLDoysqN1gNjTiArza8gX2Y0JRUXKvwWsn0NSUoe0tyG+LH2f7q3eHsTHymBYb6Ddt9IT4z2th+wxLLg2Khl9o0QFmpdW9/TZzmkVRXsugJnFCVWAamCFqjRhbc0TWP4bhZ74huJOHablr5wbl3PWt5n22cpnexvAfIUvC3uqyN+TTPIK93ArgPegvUlK/B7hlu3bN8yFsi4iqnhQ45Jt+QEkrKBUl8013BiL97kprsxt/QpFO/dQu3pqjNC84JbrqHZDgdigSMf86UjcFp3C/RsFJ0pVElPsRZo46ESYHfbQxbK2XXu9iWSlGt5saB/WdWt6B5VJU6pfBSYaKGUY22QIhgLzeEcRJx6jSU342QmqUHTQ9cvbt138PaNt6sSyThl7OTg5NdoNe4WxzX9SjjdEN5W6gKsPIFKFoSiXTgi3Xiq2AyaYs5oUa2L3JUoj6ZQtTk3BSHvikpTnISFqbVtvaw2aoCO5EVNPHg8WOoFaJRhX71GLQa5nmtHkxGCmK2s7zbkLXZi9qsrohJh+r28ObAIjcfI53dYDvbFr01f9EzX05ueyylgmNaHmKJhCyxvlny372iyQtrMubpmJQ+b7DMSMmxq7/WzcDDVMhXJO7PMdl3nJ/j0EsuzCDo2qfnPB9zeYSns5/3fXIEOK8nEnoE3wgxbDyc87477oZqfo4+g/5eeaiE1P6AvGEkfBhJQmOW48Fq2mSKp9MgnIRlTKupUVJ13xnyURX2sO4WI9QvmmjsjwPATR0TvQ5TLoT07SsXmXshkXUdBDCHdmVnEdRBG8+NeU6u/YWNEWY18nBrLsz+7nAuJSJf4R2oyHxOi/7m2NSMQux3c57hRSFeE2l8eYudp/979v8ffvzp5wWJYuysbM0uP/O8EOU/Uulqc3V98+Xlr/sHrw5/e/3m9z+Ojt+enP75bnX2/sNfHz/9PfN6+WMIuFgCw1pF9/jy5MmQNBvAkz3n/dzuUwrsZ8eOix+PzG3wrUaIKBne42awEwQXI1XuEIcsMPUqL/XNib1n+iK67NPQ9bcN2Pa9uQt2Wj10ewUb8WrOoLt1FeE2cPQZyRQvpEz3vWqWU1FpvADKTLm7Iw7WqZUrTfKySQ5qZHg3ravP9ggOVom0jt8onIYyST1AxbAQV7g+64CXg/loVZ8PwmueOkQEwqPhzH341rnbDoIa697RWx/xD8G4q19/zU4ys72xQ98umH12nPeftnYNDyEpS37jtzQaVkfuBPW6uTGjwmhIvXuAS3PNfFMAo6R3uOb/Fx1g7QV/7NWlt9KmY5Cn5SCNeArzt+IKNbZqEoe5a6Tfm7g7xHwvkd8gcbQImly6PukYvttfTffWzKPCvwAAAP//AQAA///bfbU5ag4AAA==") + assets["scripts/syncthing/app.js"], _ = base64.StdEncoding.DecodeString("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") assets["scripts/syncthing/core/controllers/syncthingController.js"], _ = base64.StdEncoding.DecodeString("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") assets["scripts/syncthing/core/directives/identiconDirective.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/5xVTVPbMBC951dsZwp2GkcOdHpJ6s4wDMxwgENz6IEyHVdWYk0VKSPLcSnkv3clJ8F2FL50wUj79r2V3m5SOS9FqslCZaVgYVDcS2pyLueEKs2Cfg9wkYxrRg1fYQDPmDScKhlEcBt8rLjMVIXfsxKBXEkIN3t9eHBgu1aphmI1v5lCAkFuzHIcx1VVkeozUXoen45GoxjPg0lvB9nlu9oShqtUlCyCgv9jzeQNAkyfKVouEEGoZqlhF4LZ/26moeOPILA8/ck+OlelyC65EN+x1DODqZ5K0qqKgCrRpbVLM1NqCR+2dZNlqgt2JU2tl9A81ecqY2fGpoGBzQOf6ioiOBn14QhOO4LWh/Rdc62Vfq9Cy2nZ4PjYqUiSBBY8ywQ7R+RLChaOGyMvlW5xP0/rSIeObwgnL9Y5e/sLWJj152te38bZ5/eopYYUDHmN5r9Lg1b/i7YO69eyp1PnuwEER13/HMDfW7x983fiK56ZHHNswW/B5ozPc+MD76Hxaki6XDKZnedcZKFFvOxHG+XZVdX+Jl6hz00b3/lTW8kdrVZnu0gq0qLAGhtDqSPcmS+p/zw+wpf26e5uEuzDEcQurh2yk4kx16nJCWVc1I0UY9vWlm4h+AzqzvdbFQ8wVT0ajJpiLXIe9olmS5FSFsa3P3/8uos5FuV9rBn2nvNUAqOJvW74WquGwUC3h+4ezLV84+JdT36D4ckEhsMDvdWsqjsin5ryOaSj92A8xfkJmzPv9ZQ+2uYEc1PL00vNtT546j/Z323vrHsd+9UDcjV/ktEI2Rw/dDAFWoaaMQQXQdT2OlVLNj5kOgQkQVtNGy64/DNuTFyXLgJWj9AI0m3fFb6r34RtBkkoWdX44XapSN0U3cnSa3+t7zDgPwAAAP//AQAA//9afsjulQgAAA==") assets["scripts/syncthing/core/directives/languageSelectDirective.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/5xVTY/jNgy9768g3MXYQSZJz5M4wLbd26CXAr0EQaHIjC2sIrmSnDTI+r+X8tfYsb0FqstMJPKR7/FZYiotJDPri04KiVFo74q7TKh0zbXBcPEJaK0TYZA7caUA6TNYin+gpK3wFc4FZQitIHrXnEk6MFfBcQGPKtevsLAI1hlBCdtu16ArjOqF1Zt13BuEX7+Er4Mzh5dcModvg92uyI6BSlfiHAdXYcVJYgCZQfr5UwBcMmvjIDE6T/RNrZxOUx+QMMeaHx+nATAj2Ar/yZlKMIkDZwoM9jtLv1ukVN7zTHCi3f23SqU++biND9y/qJPNt4+HrFSxv7ML2gMvjEHlaqWO8P07BF9VKoXNgrKEQQXOSKAObbdh+3A5Q7yQI+bPhC+oimAOoUaRwqMYzJG5OIjEq6KWFyAU9CkEPqhBf7DKFG8g4njArPxhqXZa3XSqKVSwgn8j5hl5DN8bo0ViEewfD99MWf5Ahhp1I8W8TptC7slTg1Mp1Le3nok/W67zgXvbdWUG2JUJyUjhmqeFGAauX6fovjzFRIvtJFataiXqFEyT/ZuwZPp7FTaH9NRVC/kot59G8ZsNEDhoJe9NB6CqeJcxBzl9fzRFP/QOtB3/COqsDUS+vqBiP2/pz24k0FqiSl1Gh8vllKgdBYJ4zj2I45ivX+IMUU+9AzvOQfs1pQ6lUMEhxnStElDS7TUPT4LaTN+A64SkItP69gRJaEHpSkmXISR0p/2PDsNDCEsSZwnhMZxpcLRbjqdeu3rd/5DHglfb4yJNbnO1UNoU2MvL1PYhRBUep11YWHpl4PONOZ4BZ/6JGH4DgxsFbkJKOCHUlwOws0NDrwVHuoCA+WcL/i7Q3IFxjrnDZNW+VGPjUnUay7CaQZb8YvTNonmf8bv3qcGLvuJfddedFDWLaPQN/9qn0H8qFd7+ZLKYvGf88g7/r5jebIZSxdCmTjvGrz6PqWvFrwlnLSZm2fYwuLWpiQ+2tSXmeAxVIx/UG03WK/jXd6bDGfp15jilHG598GsOPL1/AQAA//8BAAD//25IFV0RCQAA")