CSC/ECE 517 Fall 2012/ch1 1w28 mv
== Security risks ==
Special care must be taken when using eval
with data from an untrusted source. For instance, assuming that the get_data()
function gets data from the Internet, this Python code is insecure:
session['authenticated'] = False
data = get_data()
foo = eval(data)
An attacker could supply the program with the string "session.update(authenticated=True)"
as data, which would update the session
dictionary to set an authenticated key to be True. To remedy this, all data which will be used with eval
must be escaped, or it must be run without access to potentially harmful functions.