27. The Dangers of Eval and Exec
eval() and exec() can execute arbitrary code and are common sources of remote code execution (RCE) vulnerabilities.
Insecure Example
data = input("Enter a command: ")
eval(data) # User can run any Python code!
Secure Example
allowed_ops = {"add": lambda x, y: x + y, "mul": lambda x, y: x * y}
cmd = input("Enter operation (add/mul): ")
if cmd not in allowed_ops:
raise ValueError("Invalid command")
print(allowed_ops[cmd](2, 3))
✅ Lesson: Never execute user input. Replace dynamic execution with safe lookup logic.