میشه درمورد این data که به تگ فرم استاد اضافه کردند توضیح بدید ("data-csrf="fd45ewr43)
سلام خوب هستید اتریبیوت csrf (یا CSRF) که مخفف عبارت "Cross-Site Request Forgery" است، برای جلوگیری از حملات CSRF در برنامههای وب استفاده میشود. حملات CSRF به حالتی گفته میشود که یک مهاجم سعی میکند تا با فریب کاربر، درخواستهایی ناخواسته را از طرف او به یک وبسایت معتبر ارسال کند. این نوع حملات میتواند به تغییر اطلاعات کاربر، انجام تراکنشهای غیرمجاز و حتی دسترسی به دادههای حساس منجر شود.
برای جلوگیری از این حملات، توکن CSRF استفاده میشود که به هر فرم یا درخواست معتبر اضافه میشود. این توکن یک شناسه یکتا و تصادفی است که سرور آن را تولید کرده و به صفحه وب ارسال میکند. وقتی کاربر فرم را ارسال میکند، توکن نیز همراه با درخواست به سرور ارسال میشود. سرور سپس این توکن را اعتبارسنجی میکند تا مطمئن شود که درخواست از یک منبع معتبر آمده است و نه از یک سایت خارجی. امیدوارم مفید بوده باشه
بهنام مرادی۱۶ تیر ۱۴۰۳، ۰۶:۳۳
ممنون از توضیحات خوبتون این اتریبیوت data که به تگ فرم اضافه کردیم چطوری میتونه در گرفتن داده به ما کمک کنه چرا ما به input این رو اضافه کردیم
اگه میشه ویدیو رو از 19:12 دقیقه تا 24:00 رو ببینید
mahshid۱۶ تیر ۱۴۰۳، ۰۷:۲۳
سلام،
وقتی یه data-attribute به تگ فرم (یا هر تگ دیگهای) اضافه میکنیم، در واقع داریم یه اطلاعات اضافی و سفارشی به اون تگ میدیم تا بعداً ازش استفاده کنیم.
در مورد اتریبیوت data-csrf داخل ویدیو:
این data-csrf یه اطلاعات اضافیه که ما به فرم اضافه کردیم. حالا چرا این کار رو کردیم؟ چون بعداً میخوایم این اطلاعات رو با جاوااسکریپت (یا jQuery) بگیریم و ازش استفاده کنیم.
مثلاً با این دستور jQuery:
j('#login-form').data('csrf');
این خط کد میاد و مقدار data-csrf رو از فرم میگیره. حالا چرا این مهمه؟ چون csrf یه نوع توکن امنیتیه که برای جلوگیری از حملات CSRF استفاده میشه. ما نیاز داریم این توکن رو توی درخواستهای ارسال شده به سرور بفرستیم تا سرور مطمئن بشه که درخواست از منبع معتبری اومده.
به جای اینکه بیایم این توکن رو به صورت مستقیم توی inputها بزاریم، خیلی راحت میتونیم به تگ فرم اضافهاش کنیم و هر وقت لازم بود با جاوااسکریپت بخونیمش. اینطوری کد تمیزتر و مرتبتر میشه و مدیریت دادهها هم راحتتره.
در ضمن فرقی نمیکنه بعد از data چه نامی بیاد، در این مثال چون میخواستیم ولیدیت امینیتی پیاده کنیم از data-csrf استفاده کردیم وگرنه میتونیم هر چنتا data-attr با هر اسمی اضافه کنیم. آنچیزی که مهم است مقدار داخل این اتریبیوت هاست که بنا به لاجیک ازشون استفاده میکنیم.