ساخت صفحه خطا برای csrf در جنگو
از عمده مشکلات امنیتی وبسایتها csrf است که زبانهای برنامه نویسی مختلف و فریمورکهای مختلف توانستهاند با ابزارهای خود این مشکل را به روشهای مختلف حل کنند. در فریمورک جنگو csrf به صورت اتوماتیک انجام میشود. در این نوشته به شما روش ساخت یک صفحهی اختصاصی را برای csrf در جنگو آموزش خواهیم داد.
ساخت صفحه خطا برای csrf در جنگو
برای ساخت یک view شخصی برای خطای csrf در فریمورک جنگو ابتدا وارد فایل settings.py پروژه شود و در خط آخر آن یک متغیر با نام CSRF_FAILURE_VIEW اضافه کنید:
CSRF_FAILURE_VIEW = "myapp_name.views.csrf_failure"
در فایل view خود در یکی از appهای خود تابع csrf_failure را اضافه کنید. (در کد بالا myapp_name را با نام app خود تغییر دهید.) حالا در فایل views.py کد زیر را اضافه کنید و تابع مورد نظر خود را به آن اضافه کنید:
def csrf_failure(request, reason=""): pass
در این تابع یکی از templateهای خود را اجرا کنید و حالا یک صفحهی اختصاصی و شخصی سازی شده برای csrf در django خواهید داشت.
اگر با روش این مقاله مشکلی داشتید در بخش نظرات همین نوشته آن را برای ما بنویسید.



















همیشه اعصابم خورد میشد وقتی صفحه پیشفرض خطای csrf میومد
موفق باشین
من تست کردم با Jinja هم درست کار کرد
موفق باشین
توی تابع csrf_failure چطوری reason رو توی template نمایش بدیم؟
برای نمایش reason در تمپلیت، کافیست آن را به دیکشنری context که به تابع render ارسال میکنید، اضافه کنید.
الان میتونم یه صفحهی خوشگل 403 بذارم به جای متن خشک جنگو
موفق باشین
خیلی وقت بود دنبال این بودم که صفحه خطای csrf رو کاستومایز کنم
موفق باشین