پیکربندی SESSION_COOKIE_HTTPONLY در Flask 3.0

flask 3 0 configuration session cookie httponly
28 آذر 1403

پیکربندی SESSION_COOKIE_HTTPONLY در Flask 3.0

سلام به همه! امروز می‌خواهیم درباره یکی از ویژگی‌های مهم فریم‌ورک Flask صحبت کنیم که به امنیت برنامه‌های وب مربوط می‌شود. این ویژگی به نام SESSION_COOKIE_HTTPONLY شناخته می‌شود. هدف اصلی این ویژگی، جلوگیری از دسترسی اسکریپت‌های جاوااسکریپت به کوکی‌های جلسه است. با فعال‌کردن این گزینه، وقتی کاربر در وب‌سایت شما وارد می‌شود، کوکی‌های صحت‌سنجی به صورت HTTP فقط در دسترس هستند و نمی‌توانند از طریق جاوااسکریپت دسترسی پیدا کنند.

دلایل زیادی برای استفاده از این ویژگی وجود دارد. یکی از اصلی‌ترین دلایل، افزایش امنیت وب‌سایت شماست. وقتی که کوکی‌ها فقط از طریق پروتکل HTTP قابل دسترسی باشند، احتمال سرقت اطلاعات کاربر به شدت کاهش می‌یابد. با توجه به افزایش حملات XSS (Cross-Site Scripting) در چند سال اخیر، استفاده از این ویژگی برای همه توسعه‌دهندگان الزامی است.

در Flask 3.0، شما به سادگی می‌توانید این ویژگی را از طریق تنظیمات اپلیکیشن خود فعال کنید. به طور پیش‌فرض، این ویژگی خاموش است، اما با یک خط کد می‌توانید آن را در پروژه خود روشن کنید.

حالا بیاید نگاهی به نحوه پیکربندی این ویژگی بکنیم. شما به سادگی می‌توانید آن را به فایل پیکربندی Flask خود اضافه کنید. در اینجا یک مثال ساده برای کمک به شما وجود دارد:

from flask import Flask

app = Flask(__name__)

# فعال کردن SESSION_COOKIE_HTTPONLY
app.config['SESSION_COOKIE_HTTPONLY'] = True

if __name__ == '__main__':
app.run(debug=True)

توضیح کد

from flask import Flask
این خط کتابخانه Flask را وارد می‌کند که برای ایجاد اپلیکیشن وب استفاده می‌شود.

app = Flask(__name__)
این خط یک شی از کلاس Flask ایجاد می‌کند که نام اپلیکیشن شما را می‌گیرد.

app.config['SESSION_COOKIE_HTTPONLY'] = True
با این خط، ویژگی SESSION_COOKIE_HTTPONLY فعال می‌شود، به این معنا که کوکی‌های جلسه از طریق جاوااسکریپت در دسترس نخواهند بود.

if __name__ == '__main__':
این خط چک می‌کند که آیا این فایل به عنوان فایل اصلی اجرا می‌شود یا خیر.

app.run(debug=True)
این خط اپلیکیشن را در حالت دیباگ اجرا می‌کند که به شما امکان می‌دهد خطاها و اطلاع‌رسانی‌های مفید را ببینید.

سوالات متداول

؟

SESSION_COOKIE_HTTPONLY چیست و چرا باید از آن استفاده کنیم؟

؟

آیا روشن کردن SESSION_COOKIE_HTTPONLY تأثیری بر روی عملکرد برنامه دارد؟