🔆 تا حالا به این فکر کردی که بشه کد پایتون رو از داخل یه رشته اجرا کرد؟
با exec() ممکنه!
code = "print('moz')"
exec(code) # خروجی: moz
دستور exec() میتونه هر رشتهای که شامل کد پایتونه رو در لحظه اجرا کنه.
⚠️ نکته مهم امنیتی
😱همین یک خط کد میتونه کل سیستم رو پاک کنه. نگید نگفتم!!
exec("import os; os.system('rm -rf /')")
تجزیه و تحلیل کد
- خط دستوری import os: این خط ماژول os را وارد میکند که امکان تعامل با سیستم عامل را فراهم میکند.
- دستور os.system('rm -rf /'): این فرمان سعی میکد تمام فایلها و پوشهها را از دایرکتوری روت (/) در سیستمهای عامل شبه یونیکس حذف کند( پارامتر -r به معنای حذف بازگشتی و f به معنای حذف بدون درخواست تأیید است).
- تابع exec() برای اجرای کد پایتون موجود در رشته استفاده میشود.
🔒 پس هیچوقت از exec برای اجرای ورودیهای غیرقابل اعتماد استفاده نکن.( نکن این کار بده! )
#security | #os | #exec | @learnpythonicy
4M حجم رسانه بالاست
مشاهده در ایتا
✔️ یادت هست اون دایناسوری که وقتی اینترنت قطع میشد بازی میکردیم؟
میتونی خودت با پایتون بسازی! 🦖
امکانات:
▫️ کنترل ساده با Space و Down
▫️ صداگذاری حرفهای
▫️ ذخیرهسازی High Score
تجربه بازی رو با پایتون از دست نده:
(لینک گیتهاب: https://github.com/ArefehKabiri/dino_runner)
#pygame | #random | #sys | #os | @learnpythonicy