mirror of
https://github.com/django/django.git
synced 2025-08-03 02:23:12 +00:00
Fixed #24915 -- Added stricter session key validation
Changed _session_key attribute to a property and implemented basic validation in the setter. The session key must be 'truthy' and at least 8 characters long. Otherwise, the value is set to None.
This commit is contained in:
parent
20ff296cb1
commit
f4416b1a8b
3 changed files with 35 additions and 1 deletions
|
@ -198,6 +198,21 @@ class SessionTestsMixin(object):
|
|||
# session key; make sure that entry is manually deleted
|
||||
session.delete('1')
|
||||
|
||||
def test_session_key_empty_string_invalid(self):
|
||||
"""Falsey values (Such as an empty string) are rejected."""
|
||||
self.session._session_key = ''
|
||||
self.assertIsNone(self.session.session_key)
|
||||
|
||||
def test_session_key_too_short_invalid(self):
|
||||
"""Strings shorter than 8 characters are rejected."""
|
||||
self.session._session_key = '1234567'
|
||||
self.assertIsNone(self.session.session_key)
|
||||
|
||||
def test_session_key_valid_string_saved(self):
|
||||
"""Strings of length 8 and up are accepted and stored."""
|
||||
self.session._session_key = '12345678'
|
||||
self.assertEqual(self.session.session_key, '12345678')
|
||||
|
||||
def test_session_key_is_read_only(self):
|
||||
def set_session_key(session):
|
||||
session.session_key = session._get_new_session_key()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue