چنل پایتون | جنگو | برنامه نویسی وب سایت
421 subscribers
292 photos
141 videos
40 files
208 links
ارتباط با مدیر:

@Amir_123_ka
Download Telegram
پارت ۱۰: امنیت در بک‌اند

سلام دوستان! 👋

در این پارت از آموزش بک‌اند با پایتون، به مبحث امنیت در برنامه‌های بک‌اند می‌پردازیم. امنیت یکی از مهم‌ترین جنبه‌های توسعه نرم‌افزار است و باید به آن توجه ویژه‌ای داشته باشیم. 🔒

اصول امنیت در برنامه‌های بک‌اند 🛡️

امنیت در برنامه‌های بک‌اند شامل چندین جنبه است:

- مدیریت دسترسی‌ها و احراز هویت: باید مطمئن شویم که کاربران فقط به منابعی دسترسی دارند که مجاز به دسترسی به آن‌ها هستند.
- رمزنگاری داده‌ها: داده‌های حساس باید رمزنگاری شوند تا در صورت دسترسی غیرمجاز، اطلاعات کاربران محافظت شود.
- استفاده از HTTPS: تمامی ارتباطات بین کلاینت و سرور باید از طریق HTTPS انجام شود تا از نفوذ حملات مرد میانی (MITM) جلوگیری شود.

مدیریت رمزنگاری و محافظت از داده‌ها 🔐

رمزنگاری یکی از مهم‌ترین روش‌ها برای حفاظت از داده‌ها است. در پایتون، می‌توانیم از کتابخانه‌هایی مانند cryptography استفاده کنیم:
from cryptography.fernet import Fernet
# تولید کلید رمزنگاری
key = Fernet.generate_key()
cipher = Fernet(key)
# رمزنگاری داده‌ها
text = "Hello, World!"
encrypted_text = cipher.encrypt(text.encode())
# رمزگشایی داده‌ها
decrypted_text = cipher.decrypt(encrypted_text).decode()
print(decrypted_text)
پیاده‌سازی احراز هویت JWT 🔑

توکن‌های JSON Web Token (JWT) یکی از روش‌های محبوب برای احراز هویت در برنامه‌های بک‌اند هستند. در پایتون، می‌توانیم از کتابخانه PyJWT استفاده کنیم:
import jwt
import datetime
# تولید توکن
def generate_token(user_id):
payload = {
'user_id': user_id,
'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1)
}
token = jwt.encode(payload, 'secret_key', algorithm='HS256')
return token
# اعتبارسنجی توکن
def verify_token(token):
try:
payload = jwt.decode(token, 'secret_key', algorithms=['HS256'])
return payload['user_id']
except jwt.ExpiredSignatureError:
return None
پیشگیری از حملات معمول 🚫

برای حفاظت از برنامه‌های بک‌اند باید از حملات معمول جلوگیری کنیم:

- SQL Injection: استفاده از ORM‌ها مانند SQLAlchemy برای جلوگیری از تزریق SQL.
- XSS (Cross-Site Scripting): استفاده از کتابخانه‌هایی مانند bleach برای پاکسازی ورودی‌های کاربر.
- CSRF (Cross-Site Request Forgery): استفاده از توکن‌های CSRF برای محافظت از فرم‌ها و درخواست‌ها.

ادامه مسیر 🚀

این آخرین پارت از آموزش بک‌اند با پایتون بود. امیدوارم این آموزش‌ها برای شما مفید بوده باشد و بتوانید پروژه‌های خود را با اطمینان بیشتری توسعه دهید.
ربات تلگرام
📚 اخبار مهم پایتون امروز 📰

۱. اعلام کاندیداهای هیئت مدیره PSF برای سال ۲۰۲۴:
بنیاد نرم‌افزاری پایتون (PSF) کاندیداهای هیئت مدیره خود برای سال ۲۰۲۴ را اعلام کرد. این افراد نقش مهمی در تعیین مسیر آینده توسعه پایتون و ابتکارات جامعه خواهند داشت. 🌟

۲. معرفی مفسر تعاملی جدید پایتون، PyREPL:
مفسر تعاملی جدیدی به نام PyREPL که با زبان پایتون نوشته شده، معرفی شد. این REPL جدید با امکانات بیشتر و کاربری آسان‌تر طراحی شده و بسیاری از محدودیت‌های مفسر فعلی را برطرف می‌کند. 💻

۳. کنفرانس‌های پیش‌روی پایتون:
چندین کنفرانس پایتون در ماه‌های آینده برگزار می‌شوند، از جمله PyCon روسیه، PyOhio و Django Girls اکوادور. این رویدادها برای مشارکت جامعه و اشتراک‌گذاری دانش اهمیت زیادی دارند. 🌍🎤

۴. توصیه کاخ سفید برای استفاده از زبان‌های امن از نظر حافظه مثل پایتون:
کاخ سفید استفاده از زبان‌های برنامه‌نویسی امن از نظر حافظه، به‌ویژه پایتون، را برای پروژه‌های نرم‌افزاری فدرال توصیه کرده است. 🏛️🔐

۵. تغییرات پیشنهادی در آیین‌نامه‌های PSF:
پرسش‌های متداول مربوط به تغییرات پیشنهادی در آیین‌نامه‌های بنیاد نرم‌افزاری پایتون منتشر شده است که بر شفافیت و بهبود عملکرد بنیاد تمرکز دارد. 📜

۶. انتشار نسخه بتای سوم پایتون 3.13:
نسخه بتای سوم پایتون 3.13 منتشر شد. این نسخه شامل پیش‌نمایش ویژگی‌ها و بهبودهایی است که در نسخه نهایی ارائه خواهد شد. 🆕🔍

۷. جلسه سران زبان پایتون ۲۰۲۴:
در جلسه سران زبان پایتون امسال، موضوعاتی از جمله بهبود ابزار pdb و PyREPL مطرح شدند که تاثیرات مهمی بر توسعه آینده پایتون خواهند داشت. 🛠️📈
👍3
گزینه ۲
[(True, False), (False, True)]
مرحله اول نصب کتابخانه
pip install deep_translator
مرحله دوم شروع کد زنی
from deep_translator import GoogleTranslator

txt= "I am a programmer"

translated = GoogleTranslator(source='auto'
target='fa').translate(txt)
مرحله سوم خروجی گرفتن

نکته🧐:
اگه جای fa و auto رو جا به جا کنید برنامه برعکس میشود یعنی فارسی رو به انگلیسی ترجمه می‌کنه
اگر هم اول auto باشه و بعد fa باشه متن انگلیسی رو به فارسی ترجمه میکنه
4
خروجی کد بالا چیست؟؟
کامنت بزارید
from PIL import Image, ImageFilter

def blur_image(image_path, output_path, radius):
image = Image.open(image_path)
blurred_image = image.filter(ImageFilter.GaussianBlur(radius))
blurred_image.save(output_path)

blur_image('cat.jpg', 'cat_out.jpg', 3)
Image.open('cat_out.jpg')
تبدیل بایت به واحد های دیگر سایز دیتا :

def format_bytes(bytes, decimals=2):
  if bytes is None: return "Incalculable"
  if bytes < 1: return "0 B"

  i = 0
  while bytes >= 1024:
    bytes /= 1024
    i += 1

  units = ["B", "KB", "MB", "GB", "TB", "PB"]
  dm = decimals if bytes % 1 != 0 else 0
  return f"{bytes:.{dm}f} {units[i]}"
1