tgoop.com/djangolearn_ir/1095
Create:
Last Update:
Last Update:
✅ هندل کردن Open Redirect Attack توی جنگو با RedirectURLMixin
این Open Redirect Attack چیه؟ کلمه این رو گذاشتم اولش راست چین بشه 😁
وقتی شما کاربر رو به URL بیرونی ریدایرکت میکنید بدون بررسی، یه attacker میتونه ازش سوء استفاده کنه:
https://yoursite.com/login/?next=http://hack.com
کاربر فکر میکنه داره به سایت شما میره، ولی بعد از login به سایت مهاجم هدایت میشه. این میتونه phishing یا سرقت اطلاعات session کاربر رو ممکن کنه. (من بلد نیستم چطوری میتونه، خودتون سرچ کنید)
میکسین ع RedirectURLMixin توی جنگو (django.contrib.auth.views) جلوی این حرکت رو می گیره. (یکی از کارهاش اینه)
چی کار میکنه؟
با میکسین ع RedirectURLMixin می تونیم بررسی کنیم که این URL جزو hostهای مجاز هست.
یه مثال ساده براش:
class AAA(RedirectURLMixin, View):
redirect_field_name = "next"
def get(self, request, *args, **kwargs):
url = self.get_redirect_url()
if url:
return redirect(url)
return redirect("/")
اون get_redirect_url یکی از متدهای این میکسین ع
حالا من اگه آدرس رو اینجوری بدم:
http://127.0.0.1:8000/profiles/aaa/?next=https://djangolearn.ir/
ریدارکت میشه به صفحه اصلی سایت خودتون نه سایت جنگولرن 😁
راستی از نسخه 4.1 به بعد این میکسین جایگزین SuccessURLAllowedHostsMixin شده:
The undocumented django.contrib.auth.views.SuccessURLAllowedHostsMixin mixin is replaced by RedirectURLMixin.
لایک نداشت این پست؟
BY جنگولرن
Share with your friend now:
tgoop.com/djangolearn_ir/1095
