سلام دوستان
برای برقرای هرچه بیشتر فرم های عضویت در خبرنامه باید چیکار کرد؟
در هر وب سایتی که فرمی برای ارسال اطلاعات به سرور موجود باشد، آن وب سایت مستعد ارسال اسپم و بمباران درخواستهای متعدد خواهد بود.
در برخی موارد استفاده از کپچا میتواند راه خوبی برای جلوگیری از ارسالهای مکرر و مخرب باشد، ولی گاهی اوقات سناریوی ما به شکلی است که امکان استفاده از کپچا، به عنوان یک مکانیزم امنیتی مقدور نیست.
اگر شما یک فرم تماس با ما داشته باشید استفاده از کپچا یک مکانیزم امنیتی معقول میباشد و همچنین اگر فرمی جهت ارسال پست داشته باشید. اما در برخی مواقع مانند فرمهای ارسال کامنت، پاسخ، چت و ... امکان استفاده از این روش وجود ندارد و باید به فکر راه حلی مناسب برای مقابل با درخواستهای مخرب باشیم.
من برای مقابله با مشکل یک شناسهی منحصر به فرد را برای هر درخواست ایجاد کنیم.
برای تولید این شناسه از IP درخواست جاری به مشخصات مرورگر میچسبونم و بعد Hash آن رو حساب میکنم.
مرحله بعد پیاده سازی مکانیزمی برای نگهداری این اطلاعات و بازیابی آنها در هر درخواست است.
برای پیاده سازی این مکانیزم از Cache استفاده میکنم.(هرچند که راه های بهتری هم وجود داره) و زمان انقضا Cache رو یک مقدار دلخواه برای مثال 1 دقیقه قرار میدهم.
خوب حالا یک درخواست ب سرور رسیده. اول شناسه منحصر به فرد این درخواست رو ایجاد میکنم(Hash) و سپس در Cache ب دنبال این شناسه میگردم اگر وجود داشت یعنی این درخواست یک اسپم هست.
فرم های خبرنامه تنها وظیفه گرفتن ایمیل کاربر رو دارن تنها کاری که با php باید انجام بدید اینکه اطلاعات رو اعتبار سنجی کنید که حتما ایمیل باشه یا میتونید با htmlspecialchars مقدار کراکتر ها رو چک کنید و در نهایت حتما با کلاس pdo ذخیره سازی انجام بدید
مهندس من اگه یک ربات بزارم که در لحظه چندین عدد ریکوئست ایمیل رو سمت فرم عضویت در خبرنامه بفرسته سایت دان میشه! اینو چیکار باید کرد؟!!
میتونید از recaptcha گوگل استفاده کنید
البته میتونید ابتدا چک کنید اگر ip کاربر در رنج ip کاربرای ایرانی نبود recaptcha اعمال بشه
و همچنین راه دیگه اینکه محدودیت بزارید شما میتونید کاری کنید هر کاربر در هر ۳۰ دقیقه یا ۱ ساعت تنها بتونه سه درخواست به اون url ارسال کنه البته منظورم از کاربر ip هست
البته recaptcha راه خوبیه
مهندس ری کپتچا برای قسمت عضویت در خبرنامه عملا هیچ جایی ندیدم استفاده بشه، ولی اون روشی که گفتی هر 30 دقیقه درخواست های url را مبنی بر ip چک و بررسی کنه رو نمیدونم باید چجوری پیاده سازی کنم
مهندس من پروژه ام لاراول نیست که روی هر مسیری اینکارو بکنم، پروژه های غیر لاراول که با php mvc هستند یا همون دیجی کالا که با asp هست اینا اگه بخواند کاربر رو محدود به 3 کلیک در 30 دقیقه کنند عملا بعد از باز کردن 2-3 تا پیج بلاک میشن!
در هر وب سایتی که فرمی برای ارسال اطلاعات به سرور موجود باشد، آن وب سایت مستعد ارسال اسپم و بمباران درخواستهای متعدد خواهد بود.
در برخی موارد استفاده از کپچا میتواند راه خوبی برای جلوگیری از ارسالهای مکرر و مخرب باشد، ولی گاهی اوقات سناریوی ما به شکلی است که امکان استفاده از کپچا، به عنوان یک مکانیزم امنیتی مقدور نیست.
اگر شما یک فرم تماس با ما داشته باشید استفاده از کپچا یک مکانیزم امنیتی معقول میباشد و همچنین اگر فرمی جهت ارسال پست داشته باشید. اما در برخی مواقع مانند فرمهای ارسال کامنت، پاسخ، چت و ... امکان استفاده از این روش وجود ندارد و باید به فکر راه حلی مناسب برای مقابل با درخواستهای مخرب باشیم.
من برای مقابله با مشکل یک شناسهی منحصر به فرد را برای هر درخواست ایجاد کنیم.
برای تولید این شناسه از IP درخواست جاری به مشخصات مرورگر میچسبونم و بعد Hash آن رو حساب میکنم.
مرحله بعد پیاده سازی مکانیزمی برای نگهداری این اطلاعات و بازیابی آنها در هر درخواست است.
برای پیاده سازی این مکانیزم از Cache استفاده میکنم.(هرچند که راه های بهتری هم وجود داره) و زمان انقضا Cache رو یک مقدار دلخواه برای مثال 1 دقیقه قرار میدهم.
خوب حالا یک درخواست ب سرور رسیده. اول شناسه منحصر به فرد این درخواست رو ایجاد میکنم(Hash) و سپس در Cache ب دنبال این شناسه میگردم اگر وجود داشت یعنی این درخواست یک اسپم هست.
البته من حواسم نبود که بات ها میتونند هدر User Agent رو عوض کنند.
با توجه به این موضوع دیگه از مشخصات مروگر برای تولید شناسهی منحصر به فرد استفاده نمیکنیم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟