import json
raw = '{"host": "localhost", "port": 8000}'
config = json.loads(raw)
assert isinstance(config.get("port"), int) # اعتبارسنجی حداقلی
دادهٔ خارجی (فایل کاربر، پاسخ شبکه) دشمنِ بالقوه است: نوع را چک کن، بازه را چک کن، پیشفرض امن بگذار. و قانون آهنی: pickle.loads روی بایتِ نامطمئن = اجرای کدِ مهاجم. pickle فقط برای دادهای که خودت نوشتهای و به مسیرش اعتماد داری؛ بقیهٔ دنیا JSON یا CSV.
اشتباه رایج
چون pickle استانداردِ پایتون است، پس برای ذخیرهٔ ورودی کاربر هم مناسب است.
تصحیح
استانداردبودن ربطی به امنیت ندارد. مستندات رسمی هم هشدار میدهد: unpickling دادهٔ نامطمئن میتواند کد دلخواه اجرا کند.