Tim Abbott
04db0b5df0
reload: Fix passing data to next browser session.
...
Apparently, Django's CSRF protection mechanism changed at some point,
and now we get a different CSRF token every time the webapp is loaded.
This, in turn, caused our reload logic to avoid losing state to be
completely ineffective, since the CSRF check in reload.initialize
always failed.
We fix this in a secure fashion by passing the reload instructions
from the browser to its reloaded self via localstorage, keyed by a
randomly generated token. The token randomization is primarily
relevant for handling several Zulip tabs in the same browser, but also
servers to make it very difficult for an attacker to ever trigger this
code path by redirecting a browser to `/#reload` URLs.
Fixes #3411 .
Fixes #3687 .
2017-03-22 22:46:54 -07:00
..
2017-03-21 13:55:59 -07:00
2017-01-11 15:23:42 -08:00
2017-03-07 17:25:58 -08:00
2016-11-29 08:58:39 -08:00
2017-03-20 09:49:19 -07:00
2017-03-22 06:53:21 -07:00
2017-02-16 21:06:18 -08:00
2017-01-21 21:45:12 -08:00
2017-03-09 00:56:37 -08:00
2017-03-07 22:13:01 -08:00
2017-03-19 11:05:44 -07:00
2017-02-28 16:15:10 -08:00
2016-12-07 16:11:52 -08:00
2017-03-22 20:49:05 -07:00
2016-12-07 16:11:52 -08:00
2017-01-10 04:55:41 -08:00
2017-02-21 11:30:59 -08:00
2017-03-18 15:52:50 -07:00
2017-03-22 16:32:53 -07:00
2017-03-19 11:05:45 -07:00
2017-03-16 11:30:49 -07:00
2016-12-14 21:34:51 -08:00
2017-03-19 11:05:44 -07:00
2017-01-11 15:23:42 -08:00
2017-01-11 15:23:42 -08:00
2017-03-18 15:52:50 -07:00
2017-03-21 16:40:00 -07:00
2017-02-26 18:30:15 -08:00
2016-08-25 14:12:58 -07:00
2017-02-26 16:18:02 -08:00
2017-03-22 14:17:34 -07:00
2017-02-14 23:25:22 -08:00
2017-03-16 14:06:40 -07:00
2017-03-19 22:08:21 -07:00
2017-03-18 20:40:34 -07:00
2017-03-22 15:21:36 -07:00
2017-03-21 20:32:28 -07:00
2017-03-21 20:56:34 -07:00
2017-03-21 14:28:13 -07:00
2017-01-06 10:37:54 -08:00
2017-02-23 02:58:22 -08:00
2017-03-22 11:00:18 -07:00
2017-03-19 21:03:45 -07:00
2017-03-19 21:03:45 -07:00
2017-03-19 13:42:11 -07:00
2017-03-19 20:39:21 -07:00
2017-03-10 14:59:59 -08:00
2017-02-22 22:46:44 -08:00
2017-03-19 21:03:45 -07:00
2017-03-19 21:03:45 -07:00
2017-03-19 10:56:09 -07:00
2017-03-19 22:11:38 -07:00
2017-03-09 20:52:29 -08:00
2017-02-11 08:36:39 -08:00
2017-03-19 21:03:45 -07:00
2017-03-19 11:05:46 -07:00
2017-03-18 10:35:52 -07:00
2017-03-04 07:50:47 -08:00
2017-03-05 15:44:43 -08:00
2017-03-22 22:28:18 -07:00
2017-03-22 16:04:38 -07:00
2017-03-19 14:36:34 -07:00
2017-03-07 22:13:01 -08:00
2017-01-11 15:23:42 -08:00
2017-03-22 22:46:54 -07:00
2017-03-10 14:59:59 -08:00
2017-01-11 15:23:42 -08:00
2017-01-11 15:23:42 -08:00
2017-02-07 14:13:29 -08:00
2017-03-19 11:05:45 -07:00
2017-03-22 22:28:35 -07:00
2017-03-19 11:05:44 -07:00
2017-03-20 21:44:23 -07:00
2017-03-19 14:11:50 -07:00
2017-01-11 15:23:42 -08:00
2017-03-05 15:44:43 -08:00
2017-03-21 20:56:34 -07:00
2017-03-21 23:36:47 -07:00
2017-03-19 11:05:45 -07:00
2017-03-19 21:03:45 -07:00
2017-03-18 15:52:50 -07:00
2017-03-21 23:09:32 -07:00
2016-12-14 21:34:51 -08:00
2016-12-01 14:27:17 -08:00
2017-02-28 16:03:37 -08:00
2017-03-19 11:05:45 -07:00
2017-03-19 11:05:45 -07:00
2017-03-18 10:35:52 -07:00
2017-03-22 08:20:21 -07:00
2017-03-22 08:20:21 -07:00
2017-03-22 07:29:42 -07:00
2017-03-22 07:29:42 -07:00
2017-03-22 11:00:18 -07:00
2017-03-19 14:11:50 -07:00
2017-03-19 11:05:45 -07:00
2017-03-19 21:03:45 -07:00
2017-03-18 10:35:52 -07:00
2017-03-22 20:50:44 -07:00
2017-02-14 23:25:22 -08:00
2017-03-21 00:59:17 -07:00
2017-02-26 21:39:22 -08:00
2017-03-20 21:44:23 -07:00
2016-12-07 16:11:52 -08:00