پیاده سازی بخش نظرات

زمان قرارگیری : 06 تیر 1397
زمان این قسمت : 36:08
برای دسترسی به این دوره نیاز است بصورت نقدی این دوره را خریداری کنید و این دوره بخشی از دوره های اعضای ویژه نمیباشد

تعداد شرکت کنندگان 601 نفر
قیمت دوره 149000 تومان
وضعیت دوره تکمیل شده
زمان کل دوره 33:26:16
تعداد قسمت‌ها 64
نوع دسترسی نقدی

در این جلسه قصد دارم بخش نظرات وبسایت رو پیاده سازی کنم در قالب این قسمت و چند جلسه آینده بخش های مختلف و مهمی رو آموزش خواهید دید.

رایگان 08:09
رایگان 21:49
رایگان 16:45
برای دسترسی به این دوره نیاز است بصورت نقدی این دوره را خریداری کنید و این دوره بخشی از دوره های اعضای ویژه نمیباشد

تعداد شرکت کنندگان 601 نفر
قیمت دوره 149000 تومان
وضعیت دوره تکمیل شده
زمان کل دوره 33:26:16
تعداد قسمت‌ها 64
نوع دسترسی نقدی

آفلاین
user-avatar
مدرس دوره حسام موسوی

اول داستان، طراح گرافیک بودم و ۲ سالی به عنوان طراح مشغول بودم، بعد به برنامه‌نویسی علاقمند شدم و الان بیشتر از ۱۰ ساله که عاشق کدزنی و چالش‌های پروژه‌های مختلفم. به تدریس علاقه خاصی دارم و دوست دارم دانشی که در این راه بدست آوردم را در اختیار دیگران هم قرار بدم. 

سوالات و گفتگو‌ها

سوالات و گفتگو‌ها

اگر سوال و مشکلی یا حتی بحثی در یکی از حوزه‌های برنامه‌نویسی دارید این بخش به شما کمک ویژه‌ای خواهد کرد

دورهای پیشنهادی

مشاهده همه دوره ها
Unit Test در جاوااسکریپت

Unit Test در جاوااسکریپت

تست نویسی همیشه بخشی مهمی از ساخت یک اپلیکیشن بوده است که متاسفانه در ایران توجه زیادی به آن نمیشود در صورتی که در سطح جهان این مسئله بسیار مهم است، ا...

دسترسی رایگان برای اعضای ویژه
ساخت Restful Api با Nodejs

ساخت Restful Api با Nodejs

 زبان ساده، APIها (مخفف Application Programming Interface) رابط‌هایی نرم‌افزاری هستند که ارتباط بین نرم‌افزارهای مختلف را پیاده‌سازی می‌کنند. در دنیای...

آشنایی کامل با Angular Cli

آشنایی کامل با Angular Cli

Angular cli ابزاری است که به برنامه نویسان angular کمک میکنند تا بتوانند بهتر و راحتتر با Angular کار کنن و تمرکز کامل خود را بر روی توسعه اپلیکشن خود...

دسترسی رایگان برای اعضای ویژه
آموزش کامل Angular

آموزش کامل Angular

Angular 4 یکی از پرطرفدارترین فریم‌ ورک‌های Open Source جاوا اسکریپت هست که برای ساخت انواع اپلیکیشن های تحت وب بکار میره. تیم Google که روی این پروژه...

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
آفلاین
user-avatar
حسین مرادیان
2 سال پیش

سلام مهندس جان،
یه نکته امنیتی: وقتی شما ...req.body رو می گیرید و در سند ذخیره می کنید ممکنه کاربر فیلد approved رو هم با درست کردن یه input از نوع hidden و با مقدار true از طریق inspector بفرسته و نظر خودش رو تایید شده ثبت کنه! بهتر نیست موقع ثبت نظر فیلد مورد نظر رو با false مقدار دهی کنیم؟

آفلاین
user-avatar
حسام موسوی
2 سال پیش

سلام تشکر از نظرتون
دقیقا کدوم قسمت منظورتونه ؟

آفلاین
user-avatar
حسین مرادیان
2 سال پیش

خواهش می کنم، در موقع ثبت نظر مربوط به یک دوره (تابع comment در homeController):

            let newComment = new Comment({
                user : req.user.id,
                ...req.body
            });
            await newComment.save();
آفلاین
user-avatar
حسین مرادیان
2 سال پیش

البته ناگفته نمونه بنده یک سطر کد داخلش گنجوندم، حالا نمی دونم اضافه س یا نه:

            let newComment = new Comment({
                user : req.user.id,
                ...req.body
            });

        newComment.approved = false;
            await newComment.save();
آفلاین
user-avatar
حسام موسوی
2 سال پیش

بله کاملا درسته به این موضوع دقت نکرده بودم اصلا
کدتون هم درسته

آفلاین
user-avatar
حسین مرادیان
2 سال پیش

خواهش می کنم مهندس جان،
حیف بود پروژه تون با این کیفیت و ساختار خوب و مستحکم، یه مشکل کوچیک امنیتی داشته باشه، البته اینجوری هم میشد کاربرای کنجکاو رو یه جورایی شناسایی کرد (با استفاده از فیلد updatedAt = null) :)

آفلاین
user-avatar
majid
2 سال پیش

سلام ببخشید میشه این نکته ی امنیتی رو یکم واضح تر بگین که دقیقا چی رو باید false کنیم.

آفلاین
user-avatar
حسین مرادیان
2 سال پیش

سلام مهندس جان
قبل از ثبت نظر جدید توسط کاربران بطور پیش فرض باید تاییدنشده باشه، تا اینجا درست؟ حالا اگر کاربر فیلد approved رو به شکل جعلی با مقدار true با فرم بفرسته و ما هم ثبت کنیم چی میشه؟ خودش نظر خودش رو تایید شده میفرسته! حالا برای جلوگیری از این مشکل امنیتی، ما قبل از ثبت نظر بصورت پیشفرض تایید نشده ثبت می کنیم با افزودن این خط کد قبل از متد save:

newComment.approved = false;