A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/django/django/commit/fbe2eead2fa9d808658ca582241bcacb02618840 below:

[1.3.X] Corrected an issue which could allow attackers to manipulate … · django/django@fbe2eea · GitHub

File tree Expand file treeCollapse file tree 2 files changed

+15

-9

lines changed

Filter options

Expand file treeCollapse file tree 2 files changed

+15

-9

lines changed Original file line number Diff line number Diff line change

@@ -1,6 +1,8 @@

1 1

from django.contrib.sessions.backends.base import SessionBase, CreateError

2 2

from django.core.cache import cache

3 3 4 +

KEY_PREFIX = "django.contrib.sessions.cache"

5 + 4 6

class SessionStore(SessionBase):

5 7

"""

6 8

A cache-based session store.

@@ -10,7 +12,7 @@ def __init__(self, session_key=None):

10 12

super(SessionStore, self).__init__(session_key)

11 13 12 14

def load(self):

13 -

session_data = self._cache.get(self.session_key)

15 +

session_data = self._cache.get(KEY_PREFIX + self.session_key)

14 16

if session_data is not None:

15 17

return session_data

16 18

self.create()

@@ -37,13 +39,13 @@ def save(self, must_create=False):

37 39

func = self._cache.add

38 40

else:

39 41

func = self._cache.set

40 -

result = func(self.session_key, self._get_session(no_load=must_create),

42 +

result = func(KEY_PREFIX + self.session_key, self._get_session(no_load=must_create),

41 43

self.get_expiry_age())

42 44

if must_create and not result:

43 45

raise CreateError

44 46 45 47

def exists(self, session_key):

46 -

if self._cache.has_key(session_key):

48 +

if self._cache.has_key(KEY_PREFIX + session_key):

47 49

return True

48 50

return False

49 51

@@ -52,5 +54,5 @@ def delete(self, session_key=None):

52 54

if self._session_key is None:

53 55

return

54 56

session_key = self._session_key

55 -

self._cache.delete(session_key)

57 +

self._cache.delete(KEY_PREFIX + session_key)

56 58 Original file line number Diff line number Diff line change

@@ -6,6 +6,8 @@

6 6

from django.contrib.sessions.backends.db import SessionStore as DBStore

7 7

from django.core.cache import cache

8 8 9 +

KEY_PREFIX = "django.contrib.sessions.cached_db"

10 + 9 11

class SessionStore(DBStore):

10 12

"""

11 13

Implements cached, database backed sessions.

@@ -15,22 +17,24 @@ def __init__(self, session_key=None):

15 17

super(SessionStore, self).__init__(session_key)

16 18 17 19

def load(self):

18 -

data = cache.get(self.session_key, None)

20 +

data = cache.get(KEY_PREFIX + self.session_key, None)

19 21

if data is None:

20 22

data = super(SessionStore, self).load()

21 -

cache.set(self.session_key, data, settings.SESSION_COOKIE_AGE)

23 +

cache.set(KEY_PREFIX + self.session_key, data,

24 +

settings.SESSION_COOKIE_AGE)

22 25

return data

23 26 24 27

def exists(self, session_key):

25 28

return super(SessionStore, self).exists(session_key)

26 29 27 30

def save(self, must_create=False):

28 31

super(SessionStore, self).save(must_create)

29 -

cache.set(self.session_key, self._session, settings.SESSION_COOKIE_AGE)

32 +

cache.set(KEY_PREFIX + self.session_key, self._session,

33 +

settings.SESSION_COOKIE_AGE)

30 34 31 35

def delete(self, session_key=None):

32 36

super(SessionStore, self).delete(session_key)

33 -

cache.delete(session_key or self.session_key)

37 +

cache.delete(KEY_PREFIX + (session_key or self.session_key))

34 38 35 39

def flush(self):

36 40

"""

@@ -39,4 +43,4 @@ def flush(self):

39 43

"""

40 44

self.clear()

41 45

self.delete(self.session_key)

42 -

self.create()

46 +

self.create()

You can’t perform that action at this time.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4