Ticket #19201 already exists that goes into details about problems with
session expiration. This ticket exists to track the particular bug that
custom expiration does not work in the signed cookies backend.
I propose that we should either (and I would be happy to work to get PR:s
for):
- Raise an explicit exception when `set_expiry()` is called on signed
cookie session backend. Currently the call is just ignored which may lead
to security issues if the default configured session timeout is very high
and some sensitive login/session need like to have a much lower
expiration.
- Handle expiration in a signed cookies-specific way (see my PR at
https://github.com/django/django/pull/7885 for an attempt at this).
I very much agree with the conclusion in #19201 that expiration is messy
across backends and is in need of refactor but I think the current state
is even worse where we have silent failures for potentially secret
sensitive code.
I don't have the time to work on a full refactor of the expiration (given
that it needs to be very backward compatible it is probably a bit of work
involved).
--
Ticket URL: <https://code.djangoproject.com/ticket/27775>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* stage: Unreviewed => Accepted
--
Ticket URL: <https://code.djangoproject.com/ticket/27775#comment:1>
* needs_better_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/27775#comment:2>
* owner: nobody => buugaj
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/27775#comment:3>
* needs_better_patch: 1 => 0
Comment:
[https://github.com/django/django/pull/16206 PR]
--
Ticket URL: <https://code.djangoproject.com/ticket/27775#comment:4>
* needs_better_patch: 0 => 1
* needs_tests: 0 => 1
* needs_docs: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/27775#comment:5>