سید رضا موسوی
7 سال پیش توسط سید رضا موسوی مطرح شد
7 پاسخ

امنیت فرم های عضویت در خبر نامه با php

سلام دوستان
برای برقرای هرچه بیشتر فرم های عضویت در خبرنامه باید چیکار کرد؟


ثبت پرسش جدید
Igo
@Igo 7 سال پیش آپدیت شد
0

در هر وب‌ سایتی که فرمی برای ارسال اطلاعات به سرور موجود باشد، آن وب سایت مستعد ارسال اسپم و بمباران درخواست‌های متعدد خواهد بود.
در برخی موارد استفاده از کپچا می‌تواند راه خوبی برای جلوگیری از ارسال‌های مکرر و مخرب باشد، ولی گاهی اوقات سناریوی ما به شکلی است که امکان استفاده از کپچا، به عنوان یک مکانیزم امنیتی مقدور نیست.
اگر شما یک فرم تماس با ما داشته باشید استفاده از کپچا یک مکانیزم امنیتی معقول می‌باشد و همچنین اگر فرمی جهت ارسال پست داشته باشید. اما در برخی مواقع مانند فرمهای ارسال کامنت، پاسخ، چت و ... امکان استفاده از این روش وجود ندارد و باید به فکر راه حلی مناسب برای مقابل با درخواست‌های مخرب باشیم.
من برای مقابله با مشکل یک شناسه‌ی منحصر به فرد را برای هر درخواست ایجاد کنیم.
برای تولید این شناسه از IP درخواست جاری به مشخصات مرورگر میچسبونم و بعد Hash آن رو حساب میکنم.
مرحله بعد پیاده سازی مکانیزمی برای نگهداری این اطلاعات و بازیابی آن‌ها در هر درخواست است.
برای پیاده سازی این مکانیزم از Cache استفاده میکنم.(هرچند که راه های بهتری هم وجود داره) و زمان انقضا Cache رو یک مقدار دلخواه برای مثال 1 دقیقه قرار میدهم.
خوب حالا یک درخواست ب سرور رسیده. اول شناسه منحصر به فرد این درخواست رو ایجاد میکنم(Hash) و سپس در Cache ب دنبال این شناسه میگردم اگر وجود داشت یعنی این درخواست یک اسپم هست.


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 7 سال پیش مطرح شد
0

فرم های خبرنامه تنها وظیفه گرفتن ایمیل کاربر رو دارن تنها کاری که با php باید انجام بدید اینکه اطلاعات رو اعتبار سنجی کنید که حتما ایمیل باشه یا میتونید با htmlspecialchars مقدار کراکتر ها رو چک کنید و در نهایت حتما با کلاس pdo ذخیره سازی انجام بدید


سید رضا موسوی
تخصص : برنامه
@rmtonliner 7 سال پیش مطرح شد
0

مهندس من اگه یک ربات بزارم که در لحظه چندین عدد ریکوئست ایمیل رو سمت فرم عضویت در خبرنامه بفرسته سایت دان میشه! اینو چیکار باید کرد؟!!


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 7 سال پیش آپدیت شد
0

میتونید از recaptcha گوگل استفاده کنید
البته میتونید ابتدا چک کنید اگر ip کاربر در رنج ip کاربرای ایرانی نبود recaptcha اعمال بشه
و همچنین راه دیگه اینکه محدودیت بزارید شما میتونید کاری کنید هر کاربر در هر ۳۰ دقیقه یا ۱ ساعت تنها بتونه سه درخواست به اون url ارسال کنه البته منظورم از کاربر ip هست
البته recaptcha راه خوبیه


سید رضا موسوی
تخصص : برنامه
@rmtonliner 7 سال پیش مطرح شد
0

مهندس ری کپتچا برای قسمت عضویت در خبرنامه عملا هیچ جایی ندیدم استفاده بشه، ولی اون روشی که گفتی هر 30 دقیقه درخواست های url را مبنی بر ip چک و بررسی کنه رو نمیدونم باید چجوری پیاده سازی کنم


سید رضا موسوی
تخصص : برنامه
@rmtonliner 7 سال پیش مطرح شد
0

مهندس من پروژه ام لاراول نیست که روی هر مسیری اینکارو بکنم، پروژه های غیر لاراول که با php mvc هستند یا همون دیجی کالا که با asp هست اینا اگه بخواند کاربر رو محدود به 3 کلیک در 30 دقیقه کنند عملا بعد از باز کردن 2-3 تا پیج بلاک میشن!


Igo
@Igo 7 سال پیش آپدیت شد
0

در هر وب‌ سایتی که فرمی برای ارسال اطلاعات به سرور موجود باشد، آن وب سایت مستعد ارسال اسپم و بمباران درخواست‌های متعدد خواهد بود.
در برخی موارد استفاده از کپچا می‌تواند راه خوبی برای جلوگیری از ارسال‌های مکرر و مخرب باشد، ولی گاهی اوقات سناریوی ما به شکلی است که امکان استفاده از کپچا، به عنوان یک مکانیزم امنیتی مقدور نیست.
اگر شما یک فرم تماس با ما داشته باشید استفاده از کپچا یک مکانیزم امنیتی معقول می‌باشد و همچنین اگر فرمی جهت ارسال پست داشته باشید. اما در برخی مواقع مانند فرمهای ارسال کامنت، پاسخ، چت و ... امکان استفاده از این روش وجود ندارد و باید به فکر راه حلی مناسب برای مقابل با درخواست‌های مخرب باشیم.
من برای مقابله با مشکل یک شناسه‌ی منحصر به فرد را برای هر درخواست ایجاد کنیم.
برای تولید این شناسه از IP درخواست جاری به مشخصات مرورگر میچسبونم و بعد Hash آن رو حساب میکنم.
مرحله بعد پیاده سازی مکانیزمی برای نگهداری این اطلاعات و بازیابی آن‌ها در هر درخواست است.
برای پیاده سازی این مکانیزم از Cache استفاده میکنم.(هرچند که راه های بهتری هم وجود داره) و زمان انقضا Cache رو یک مقدار دلخواه برای مثال 1 دقیقه قرار میدهم.
خوب حالا یک درخواست ب سرور رسیده. اول شناسه منحصر به فرد این درخواست رو ایجاد میکنم(Hash) و سپس در Cache ب دنبال این شناسه میگردم اگر وجود داشت یعنی این درخواست یک اسپم هست.


Igo
@Igo 7 سال پیش مطرح شد
0

البته من حواسم نبود که بات ها میتونند هدر User Agent رو عوض کنند.
با توجه به این موضوع دیگه از مشخصات مروگر برای تولید شناسه‌ی منحصر به فرد استفاده نمیکنیم.


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

ورود یا ثبت‌نام