من محمد عباسی (@abbasi_ai)
یک توسعه دهنده پایتون هستم با بیش از ۸ سال تجربه کار با پایتون (البته زمانی که دارم این پست رو مینویسم و باقی موارد تجربیاتم هم برای این کانال اهمیتی نداره)
سعی میکنم نکاتی که فکر میکنم مهم هست تغییراتی که توی نسخههای اخیر (از پایتون ۳.۴ به بعد وارد شده و اهمیت بالایی داره و ... رو صحبت کنم)
بیشتر هدف از این کانال، برای خودم به نوعی آرشیوی از موارد و ویژگیهای مهم پایتون هست که راجبش میشه صحبت کرد
ازین به بعد قرار هست اینجا در مورد core python صحبت کنم تا اینطوری بتونم به دوستانم هم کمک کنم و نیازی هم به تکرارهای مجدد نباشه.
هیچکدوم از موارد رو از خودم نمیگم (مگر با #نظر_شخصی علامت گذاری بشه) منابع همه صحبتها داکیومنت اصلی پایتون و کتابهای معروف پایتونی هست.
LinkedIn Profile
@pyHints
یک توسعه دهنده پایتون هستم با بیش از ۸ سال تجربه کار با پایتون (البته زمانی که دارم این پست رو مینویسم و باقی موارد تجربیاتم هم برای این کانال اهمیتی نداره)
سعی میکنم نکاتی که فکر میکنم مهم هست تغییراتی که توی نسخههای اخیر (از پایتون ۳.۴ به بعد وارد شده و اهمیت بالایی داره و ... رو صحبت کنم)
بیشتر هدف از این کانال، برای خودم به نوعی آرشیوی از موارد و ویژگیهای مهم پایتون هست که راجبش میشه صحبت کرد
ازین به بعد قرار هست اینجا در مورد core python صحبت کنم تا اینطوری بتونم به دوستانم هم کمک کنم و نیازی هم به تکرارهای مجدد نباشه.
هیچکدوم از موارد رو از خودم نمیگم (مگر با #نظر_شخصی علامت گذاری بشه) منابع همه صحبتها داکیومنت اصلی پایتون و کتابهای معروف پایتونی هست.
LinkedIn Profile
@pyHints
🔥51❤13👍9👎4☃1
Python Hints pinned «من محمد عباسی (@abbasi_ai) یک توسعه دهنده پایتون هستم با بیش از ۸ سال تجربه کار با پایتون (البته زمانی که دارم این پست رو مینویسم و باقی موارد تجربیاتم هم برای این کانال اهمیتی نداره) سعی میکنم نکاتی که فکر میکنم مهم هست تغییراتی که توی نسخههای اخیر…»
وقتی صحبت از ارسال و دریافت دیتا میشود یکی از مواردی از همون ابتدا به ذهن میرسه انتخاب
درست هست؛ اگر توسعه دهنده وب باشید قطعا همون اول یاد
میوفتید (امن و مناسب) اما گزینههای دیگری هم هست که توی پروژههای مختلف استفاده میشه مثل
مشکل اصلی که با
بصورت دیفالت
اما مشکل اینجاس که
تصویر پیوست شده؛ اگر قرار هست از
GitHub issues
@PyHints
Serializer
درست هست؛ اگر توسعه دهنده وب باشید قطعا همون اول یاد
JSON
میوفتید (امن و مناسب) اما گزینههای دیگری هم هست که توی پروژههای مختلف استفاده میشه مثل
YAMLکه بیشتر دوستان DevOps کار یا برنامهنویسهای اون سمت باهاش کار میکنند؛ و یا مثلا:
Pickle
که توی AI و DataScience خیلی طرفدار داره متاسفانه (استفادهاش توی تیم من ممنوع هست)مشکل اصلی که با
YAML, Pickle
وجود داره بخصوص Pickle
امنیت هست.بصورت دیفالت
YAML
, Pickle وقتی باهاش Serialized Dataرو باز میکنید اگر حاوی دستورات سیستمی هم باشه اونهارو بصورت کامل اجرا میکنه برای همین هست که توی
PyYaml
وقتی کدی قرار هست برای Production
استفاده بشه باید از yaml.safe_loadاستفاده کنید.
اما مشکل اینجاس که
safe_load
کلاسهای کاستوم رو نمیشناسه راه حل :تصویر پیوست شده؛ اگر قرار هست از
YAML
توی پروژه استفاده کنید حتما از safe_loader
استفاده کنید load
, full_loader
, ... امن نیست و این مورد یک باگ کاملا شناخته شده هست.GitHub issues
@PyHints
👍25👌5❤4❤🔥1☃1👻1
یک نمونه exploit خیلی ساده برای تست؛ سورس کد رو گذاشتم که خودتون اجرا کنید و مطمئن باشید امن هست.
اما بجای
هیچوقت هیچ فایل
@PyHints
اما بجای
ls
میشد هرکار دیگری هم کرد یا خوندن passwd
میشد خیلی کارهای دیگهای کرد.هیچوقت هیچ فایل
Pickle
ایی رو از کسی قبول نکنید اگر قبول کردید روی سیستم اجرا نکنید.@PyHints
👍35❤🔥3☃2❤2👾2👌1
این کد که احتمالاً بسیار هم میبینید و استفاده میکنید
۲ تا باگ داره، که ۱ مورد میتونه حتی شمارو توی مصاحبه رد کنه
میتونید باگهارو پیدا کنید ؟
@PyHints
۲ تا باگ داره، که ۱ مورد میتونه حتی شمارو توی مصاحبه رد کنه
میتونید باگهارو پیدا کنید ؟
@PyHints
👀20✍6🤔3❤🔥2👍2❤1☃1👌1😐1