Redis cache deserializes untrusted pickle
Review this Python caching layer that stores objects in Redis.
What a strong answer looks like
Separate real bugs from style. Rank issues by severity, point at the root cause rather than the symptom, and suggest a concrete fix, specific and kind.
0:00 of about 30 min
Mark a line and say what kind of problem it is.0 findings
1import pickle, redis
2r = redis.Redis()
3
4def cache_set(key, obj):
5 r.set(key, pickle.dumps(obj))
6
7def cache_get(key):
8 raw = r.get(key)
9 if raw is None:
10 return None
11 return pickle.loads(raw) # rehydrate
Which questions mattered is sealed until you submit. Telling you now would just be handing over the edge cases.
Run or narrate your approach, then ask the coach.