سلام
هرجایی که کاربر قرار هست چیزی سابمیت کنه بهتره از نانس استفاده کنید تا مطمپن بشید که CSRF رخ ندهُ مخصوصا در جاهای حساس مثل حذف کردن یا تغییر دیتا.
همین الان به ادمین وردپرس تون برید و بعدش به قسمت لیست نوشته ها برید. ماوس رو روی گزینه انتقال به زباله دان نگه دارید، داخل لینک، پارامتر NONCE رو خواهید دید. چون مهم هست که مطمئن بشه کس دیگری لینک نساخته برای ادمین.
برای این کار باید کدنویسی کنید و نانس رو در دیتابیس ذخیره کنید که سربار ایجاد میکنه و جز در موارد خاص توجیه فنی نداره.
samanmaya3d
6 سال و قبل
با سلام و احترام
ممنون از سایت خیلی خوبتون، بی شک شما (محمد صبوریان) بهترین مدرس این سایت هستید. من 70 در صد آموزش های شما رو دیدم و واقعا فوق العاده بود، متاسفانه فکر می کردم که بسته ی پلاگین هم خودتون هستید که اما گویا چند تا ترک اول رو شما تدریس کردید و مابقی رو همکارتون بودن.
این آموزشتون فوق العاده بود. بسیار ممنون، شاید به جرات بگم که من کارم رو مدیون آموزش های عمیق و بسیار خوب شما (محمد صبوریان) هستم.
با سپاس فراوان
smygh
7 سال و قبل
با سلام و احترام
در سایت من از پوسته porto استفاده شده و چند وقتی هست که وقتی صفحه اصلی را باز میکنم redirect میشه به سایت دیگه یعنی هکش کردن
من باید چی کار کنم
ممنون میشم اگه راهنمایی کنید
بدجوری گیر کردم
سلام
با کدنویسی وردپرس باید آشنا باشید. (حداقل در حد دوره 0 تا 50 )
Ali
8 سال و قبل
سلام به یقین اموزش خوبی و میخوام تهیه اش کنم فقط یه خورده قیمتش بالا نیست 🙂 تخفیف بدید تا تهیه کنیم استفاده کنیم
pakan
8 سال و قبل
سلام.ببخشید شما یک سوالی رو در دوره مطرح کردید در مورد این که nonce توی وردپرس چرا مشکل داره و قرار بود جوابش رو بدید ولی دیگه جوابی ندادید.حالا جواب سوال چی میشه؟
سلام
چه عجب یک نفر پرسید :))
نانس واقعی بدرد دوجا میخوره. یکی اینکه مطمئن بشیم شخص ثالثی درخواست نفرستاده است.
دوم اینکه مطمئن بشیم یک درخواست تکرار نشده باشد.
در وردپرس زمانیکه نانس وریفای میشه، از بین نمیره و این یعنی اینکه حالت دوم رو ساپورت نمیکنه. یعنی صرفا برای CSRF خوبه و بدرد تشخیص تکراری بودن درخواست نمیخوره. در واقع اگر درخواست مجاز باشه، صد بار هم میتونه اجرا بشه…
حالا چه کاریه؟! چرا باید برامون مهم باشه که درخواست تکراری نباشه؟
با مثال توضیح میدم خدمت تون:
فرض کنید برنامه نویس سایت بانک هستید. کاربر اومده فرم رو پر کرده و اطلاعات کارت رو وارد کرده و تایید زده. خرید انجام میشه و پول کم میشه. حالا کاربر مجدد رفرش میکنه، فرم مجدد ارسال میشه و ما باید جلوشو بگیریم. اگر نانس مون باطل نشده باشه، دوباره پول رو ازش کم میکنیم…
یا مثلا فرمی رو در نظر بگیرین که در چند مرحله قراره جلو بره، کاربر میره مرحله سوم باز بک رو در مرورگر میزنه و دوباره ارسال میکنه. در بعضی حالات ما باید جلوی این کار رو بگیریم چون ممکنه برامون مهم باشه که استپ اول رو کاربر حتما رفته باشه و یکدفعه از استپ دوم شروع نکنه بره سوم…
مثالش چی میشه؟ بازهم سایت بانک ها و یا سازمان سنجش و موارد مشابهی که قطعا برخورد کردید. سایت هایی که میگن دکمه back مرورگر رو به هیچ عنوان نزنید.
بانک ملت اگر بک بزنید کلا پرت تون میکنه بیرون 🙂
در اینجور مواقع باید وقتی عملیات اون فرم انجام میشه، نانس رو حتما باطل کنیم تا جلوی اشتباهات کاربر و حتی سوء استفاده اش رو بگیریم.
سلام
زمان نانس ها در وردپرس دقیق نیست و برای اینکه دقت زمانی مهم نبوده و دلیلی نداشته درگیر پردازش های سنگین تر بشن، به صورت تقریبی زمان رو محاسبه میکنن. وقتی دو تا tick داریم، اگر عدد یک برگرده، معناش اینه که نانس بین 0 تا 12 ساعت پیش ساخته شده و اگر 2 برگرده معناش اینه که بین 12 تا 24 ساعت پیش ساخته شده. این سیستم برای هدفی که بوده کاملا جوابگو هست، حالا اگر شما بخواید دقیقترش کنین، میتونین از فیلتر مربوطه به صورت زیر استفاده کنید:
این جمله رو هم برای درک بهتر سیستم دقت کنین: طول عمر نانس در بهترین حالت 24 ساعت هست و در بد ترین حالت 12 ساعت. میتونین بگین چرا؟
اگر جواب این سوال رو بدین معناش اینه که روال محاسباتیش رو درک کردین.
و نکته بعدی اینکه کلا تیک چطور محاسبه میشه؟ (منظور وریفایش نیست)
در حالت پیشفرض وردپرس، تعداد ثانیه های یک روز که میشه 86400 تقسیم بر دو میشه ( دو تیک) که عددش میشه 43200 و بعد تایم استمپ فعلی تقسیم بر 43200 میشه و به بالا گرد میشه. لذا هر دوازده ساعت از اغاز 1970 شماره گذاری میشه، همونطور که timestamp تعداد ثانیه های گذشته از 1970 هست، تیک هم تعداد 12 ساعت های گذشته شده از 1970 هست.
حالا شما ممکنه بسته به نیازتون بیاین بجای شمارش 12 ساعت ها، 3 ساعته محاسبه کنین و منطق برنامه تون تفسیرش میشه اینکه نانسی که دریافت میکنین اگر عدد یک برگردونه معناش اینه که نانس در سه ساعت گذشته ساخته شده و تازه هست و اگر 2 برگردونه یعنی در سه ساعت قبلیش ساخته شده و…
سلام
در ویدیوی آخر برای امنیت گفتید nonce_key را یک عدد یکتا بزاریم.این nonce_key خودش به اکشن اضافه میشه یا ما باید خودمان به اکشن اضافه کنیم؟
سلام
نانس کی در کانفیگ یکبار س میکنید و خودش در محاسبات اعمال میشه.
سلام استاد خسته نباشید
ببخشید من دقیقا متوجه نشدم که توی طراحی قالب کجا باید از nonce استفاده کرد شما فقط نحوه تولید و استفاده اش رو گفتین
سلام
هرجایی که کاربر قرار هست چیزی سابمیت کنه بهتره از نانس استفاده کنید تا مطمپن بشید که CSRF رخ ندهُ مخصوصا در جاهای حساس مثل حذف کردن یا تغییر دیتا.
همین الان به ادمین وردپرس تون برید و بعدش به قسمت لیست نوشته ها برید. ماوس رو روی گزینه انتقال به زباله دان نگه دارید، داخل لینک، پارامتر NONCE رو خواهید دید. چون مهم هست که مطمئن بشه کس دیگری لینک نساخته برای ادمین.
بعد این نانس رو چیجوری یکبار مصرف بکنیم توی وردپرس
برای این کار باید کدنویسی کنید و نانس رو در دیتابیس ذخیره کنید که سربار ایجاد میکنه و جز در موارد خاص توجیه فنی نداره.
با سلام و احترام
ممنون از سایت خیلی خوبتون، بی شک شما (محمد صبوریان) بهترین مدرس این سایت هستید. من 70 در صد آموزش های شما رو دیدم و واقعا فوق العاده بود، متاسفانه فکر می کردم که بسته ی پلاگین هم خودتون هستید که اما گویا چند تا ترک اول رو شما تدریس کردید و مابقی رو همکارتون بودن.
این آموزشتون فوق العاده بود. بسیار ممنون، شاید به جرات بگم که من کارم رو مدیون آموزش های عمیق و بسیار خوب شما (محمد صبوریان) هستم.
با سپاس فراوان
با سلام و احترام
در سایت من از پوسته porto استفاده شده و چند وقتی هست که وقتی صفحه اصلی را باز میکنم redirect میشه به سایت دیگه یعنی هکش کردن
من باید چی کار کنم
ممنون میشم اگه راهنمایی کنید
بدجوری گیر کردم
سلام
باید سورس تم رو بررسی کنید و کدهای اضافه رو پاکسازی کنید.
باحال بود /عالی
سلام
پیش نیاز این دوره چیه؟
سلام
با کدنویسی وردپرس باید آشنا باشید. (حداقل در حد دوره 0 تا 50 )
سلام به یقین اموزش خوبی و میخوام تهیه اش کنم فقط یه خورده قیمتش بالا نیست 🙂 تخفیف بدید تا تهیه کنیم استفاده کنیم
سلام.ببخشید شما یک سوالی رو در دوره مطرح کردید در مورد این که nonce توی وردپرس چرا مشکل داره و قرار بود جوابش رو بدید ولی دیگه جوابی ندادید.حالا جواب سوال چی میشه؟
سلام
چه عجب یک نفر پرسید :))
نانس واقعی بدرد دوجا میخوره. یکی اینکه مطمئن بشیم شخص ثالثی درخواست نفرستاده است.
دوم اینکه مطمئن بشیم یک درخواست تکرار نشده باشد.
در وردپرس زمانیکه نانس وریفای میشه، از بین نمیره و این یعنی اینکه حالت دوم رو ساپورت نمیکنه. یعنی صرفا برای CSRF خوبه و بدرد تشخیص تکراری بودن درخواست نمیخوره. در واقع اگر درخواست مجاز باشه، صد بار هم میتونه اجرا بشه…
حالا چه کاریه؟! چرا باید برامون مهم باشه که درخواست تکراری نباشه؟
با مثال توضیح میدم خدمت تون:
فرض کنید برنامه نویس سایت بانک هستید. کاربر اومده فرم رو پر کرده و اطلاعات کارت رو وارد کرده و تایید زده. خرید انجام میشه و پول کم میشه. حالا کاربر مجدد رفرش میکنه، فرم مجدد ارسال میشه و ما باید جلوشو بگیریم. اگر نانس مون باطل نشده باشه، دوباره پول رو ازش کم میکنیم…
یا مثلا فرمی رو در نظر بگیرین که در چند مرحله قراره جلو بره، کاربر میره مرحله سوم باز بک رو در مرورگر میزنه و دوباره ارسال میکنه. در بعضی حالات ما باید جلوی این کار رو بگیریم چون ممکنه برامون مهم باشه که استپ اول رو کاربر حتما رفته باشه و یکدفعه از استپ دوم شروع نکنه بره سوم…
مثالش چی میشه؟ بازهم سایت بانک ها و یا سازمان سنجش و موارد مشابهی که قطعا برخورد کردید. سایت هایی که میگن دکمه back مرورگر رو به هیچ عنوان نزنید.
بانک ملت اگر بک بزنید کلا پرت تون میکنه بیرون 🙂
در اینجور مواقع باید وقتی عملیات اون فرم انجام میشه، نانس رو حتما باطل کنیم تا جلوی اشتباهات کاربر و حتی سوء استفاده اش رو بگیریم.
ممنون که وقت گذاشتید و مثال زدید .مثال بسیار خوبی بود و باعث شد بهتر موضوع رو درک کنم.
سلام وقتتون بخیر اموزش خوبی بود لطفا بخش دوم سوال هم پاسخ بدین چرا تو وردپرس نانس تقسیم بر 2 میشه (چرا دو بخش میشه)
سلام
زمان نانس ها در وردپرس دقیق نیست و برای اینکه دقت زمانی مهم نبوده و دلیلی نداشته درگیر پردازش های سنگین تر بشن، به صورت تقریبی زمان رو محاسبه میکنن. وقتی دو تا tick داریم، اگر عدد یک برگرده، معناش اینه که نانس بین 0 تا 12 ساعت پیش ساخته شده و اگر 2 برگرده معناش اینه که بین 12 تا 24 ساعت پیش ساخته شده. این سیستم برای هدفی که بوده کاملا جوابگو هست، حالا اگر شما بخواید دقیقترش کنین، میتونین از فیلتر مربوطه به صورت زیر استفاده کنید:
add_filter( 'nonce_life', function () { return 4 * HOUR_IN_SECONDS; } );
این جمله رو هم برای درک بهتر سیستم دقت کنین: طول عمر نانس در بهترین حالت 24 ساعت هست و در بد ترین حالت 12 ساعت. میتونین بگین چرا؟
اگر جواب این سوال رو بدین معناش اینه که روال محاسباتیش رو درک کردین.
و نکته بعدی اینکه کلا تیک چطور محاسبه میشه؟ (منظور وریفایش نیست)
در حالت پیشفرض وردپرس، تعداد ثانیه های یک روز که میشه 86400 تقسیم بر دو میشه ( دو تیک) که عددش میشه 43200 و بعد تایم استمپ فعلی تقسیم بر 43200 میشه و به بالا گرد میشه. لذا هر دوازده ساعت از اغاز 1970 شماره گذاری میشه، همونطور که timestamp تعداد ثانیه های گذشته از 1970 هست، تیک هم تعداد 12 ساعت های گذشته شده از 1970 هست.
حالا شما ممکنه بسته به نیازتون بیاین بجای شمارش 12 ساعت ها، 3 ساعته محاسبه کنین و منطق برنامه تون تفسیرش میشه اینکه نانسی که دریافت میکنین اگر عدد یک برگردونه معناش اینه که نانس در سه ساعت گذشته ساخته شده و تازه هست و اگر 2 برگردونه یعنی در سه ساعت قبلیش ساخته شده و…