نمایش نتایج 1 تا 14 از 14

نام تاپیک: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بودن کد

  1. #1

    ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بودن کد

    سلام ببخشید عنوانم مناسب نبود
    من یک فیلد hidden در یک فرم تعریف کردم و یک مقدار رندوم و تصادفی در اون قرار داده میشه با هر مرتبه رفرش شدن صفحه و یا ثبت فرم بصورت آجاکس و ...
    و در سمت سرور میخوام این کد را بررسی کنم اگر صحیح بود اطلاعات ثبت بشه در غیر اینصورت پیغام خطایی نمایش داده بشه
    صرفاً هدف جلوگیری از ارسال و ثبت فرم توسط ربات ها و اسپمرها هست
    توجه داشته باشید که به هیچ وجه منظور من فیلد کپچا نیست و اون سر جای خودش هست

    بطور معمول اون چیزی که نیاز دارم رو دیگران به این شکل انجام دادند که یک کد رندوم ایجاد میکنند و بصورت Session ذخیره میکنند و در فیلد فرم هم اون رو قرار میدهند و در سمت سرور مقدار ارسالی در فیلد مخفی رو با Session مطابقت میدن و اگر درست بود یعنی اوکی هست
    حالا مشکل خیلی خیلی بزرگ این کار این هست که اگر کاربر صفحه حاوی فرم را در دو تب در مرورگرش باز کنه، مقدار Session عوض میشه و عملاً اون تب اول دیگه فرمش از کار می افته من نمیخوام این مشکل بوجود بیاد و میخواهم کاری کنم که کاربر اگر در 10 تب مختلف در مرورگر خودش 10 بار صفحه رو هم باز کرد در هر 10 صفحه فرم بدرستی ارسال و ثبت بشه و مشکلی پیش نیاد برای کاربر
    لطفاً من رو راهنمایی کنید که چطور باید این کار رو بدون استفاده از Session انجام بدم؟

  2. #2
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بود

    به این میگن csrf token
    اسمش رو بگو که نیاز نباشه اینهمه توضیح بدی که چیه !

    جواب سئوالت هم اینه که نیاز نیست تو هر صفحه تغییرش بدی

    https://stackoverflow.com/a/20057340/590589

  3. #3

    نقل قول: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بود

    ممنونم بابت توضیحاتتون دوست عزیز
    نمیدونستم اسمش چی هست
    اینکه فرمودید csrf token متوجه شدم و در موردش تحقیق کردم
    آره به فکر خودم نرسیده بود که نیازی نیست با هر مرتبه رفرش شدن شناسه تغییر کنه و همین که ثابت باشه کافیه

  4. #4

    نقل قول: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بود

    یک سوال دیگه هم داشتم، session فقط توسط کاربر زمانی که سایت رو باز کنه ایجاد میشه و در حالات دیگه ایجاد نمیشه ؟
    مثلاً اگر با از file_get_content و یا curl سایت رو در یک آدرس متفاوت دریافت کنند و نمایش بدن باز هم Session ایجاد میشه یا خیر؟

  5. #5
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بود

    سشن وقتی سایت رو با مرورگر باز کنی ایجاد میشه ... چون یک کوکی داره که باید رو مرورگر کاربر ست بشه و بدون کوکی کار نمیکنه
    البته curl امکان دریافت کوکی رو داره
    ولی file_get_contents نه (حداقل فکر نمیکنم )

  6. #6

    نقل قول: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بود

    یعنی اگر کاربر در مرورگر خودش قابلیت ذخیره کوکی رو غیر فعال کنه دیکه سشن ها هم ذخیره نمیشه ؟
    اینجوری که خیلی بده و کل سایت از کار می افته اینجوری

  7. #7

    نقل قول: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بود

    ببخشید زیاد سوال میپرسم؛ چرا بعضی سایت ها وقتی برای اولین بار سایت رو باز میکنیم یه نواری پایین یا بالای صفحه نمایش داده میشه با این مضمون که سایت ما از کوکی استفاده میکنه و ... و یک دکمه تأیید هم میذارند
    آیا باید حتماً اعلام کنیم به کاربران که سایت از کوکی استفاده میکنه یا دلیل خاصی داره این اعلام کردن ؟

  8. #8
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بود

    یعنی اگر کاربر در مرورگر خودش قابلیت ذخیره کوکی رو غیر فعال کنه دیکه سشن ها هم ذخیره نمیشه ؟
    اینجوری که خیلی بده و کل سایت از کار می افته اینجوری
    سشن 2 بخش داره یکی فایل سشن که رو سرور ذخیره میشه و یکی هم کوکی که رو کامپیوتر کلاینت ذخیره میشه
    از روی اون کوکی میشه فهمید که کدوم سشن برای کدوم کاربره
    بدون کوکی سشن کار نمیکنه چون نمیشه تشخیص داد کدوم سشن برای کیه
    از بد بودن که هست ولی خب مشکل اون شخصیه که غیر فعال کرده نمیخاد شما بهش فکر کنی
    مثل اینه که ینفر که برنامه تلویزیونی میسازه نگران این باشه که بعضی خونه ها برق ندارن



    ببخشید زیاد سوال میپرسم؛ چرا بعضی سایت ها وقتی برای اولین بار سایت رو باز میکنیم یه نواری پایین یا بالای صفحه نمایش داده میشه با این مضمون که سایت ما از کوکی استفاده میکنه و ... و یک دکمه تأیید هم میذارند
    آیا باید حتماً اعلام کنیم به کاربران که سایت از کوکی استفاده میکنه یا دلیل خاصی داره این اعلام کردن ؟
    بعضیا روی حریم شخصیشون حساس هستن این سایتا میخان به اونا اطمینان بدن
    توی ایران کسی زیاد اهمیت نمیده به این مسائل

  9. #9

    نقل قول: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بود

    نقل قول نوشته شده توسط plague مشاهده تاپیک
    مثل اینه که ینفر که برنامه تلویزیونی میسازه نگران این باشه که بعضی خونه ها برق ندارن
    مثالی که زدید فوق العاده بود

    واقعاً از توضیحات شما متشکرم
    ممنونم که خیلی وقت گذاشتید و به سوالاتم پاسخ دادید سپاسگذارم

  10. #10

    نقل قول: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بود

    سلام

    فقط من یک نکته را اضافه کنم که هدف از csrf token جلوگیری از ارسال اسپم توسط ربات ها نیست. به راحتی میشه یک ربات نوشت که اول توکن را از سایت شما بگیره و بعد درخواست های خود را ارسال کند.

    فرض کنید من میدونم که شما مدیر سایت برنامه نویس هستید خوب معمولا شما به سایت تان لاگین کرده اید. از طرفی میدونم که آدرس حذف یک کاربر
    http://yourdomain.com/user.php?del=25
    است بنابراین کافیه یه ایمیل برای شما بفرستم که توش یه عکس با آدرس لینک بالا باشه. (روشهای دیگری هم هست) تا کاربر مورد نظر بدون اینکه شما متوجه شوید پاک شود.

    اما اگر آدرس حذف کاربر باشه
    http://yourdomain.com/user.php?del=25&token=somethindrandom
    چون هکر به توکن دسترسی نداره نمیتونه از این روش استفاده کنه.

    حتما مقاله php security را مطالعه کنید. تا تمامی نکات مقابله با حملات شناخته شده را در برنامه خود لحاظ کنید.

  11. #11

    نقل قول: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بود

    سلام
    ali_sed ممنونم بابت توضیحات شما

    در راستای افزایش امنیت هیچ آدرس مستقیمی برای insert و delete و حتی update در کل پروژه تعریف نکردم و تنها با متد post و اتصال به صفحات مربوطه به این متدها و عملیات ها دسترسی داده شده و بجز چند مورد بسیار جزئی (مثل شماره صفحه و موارد مشابه جهت نمایش مطالب) از get استفاده نشده در پروژه

    نقل قول نوشته شده توسط ali_sed مشاهده تاپیک
    حتما مقاله php security را مطالعه کنید. تا تمامی نکات مقابله با حملات شناخته شده را در برنامه خود لحاظ کنید.
    امکانش هست لینک مقاله را ارسال بفرمایید

  12. #12

    نقل قول: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بود

    نقل قول نوشته شده توسط hgfhjgjh مشاهده تاپیک
    در راستای افزایش امنیت هیچ آدرس مستقیمی برای insert و delete و حتی update در کل پروژه تعریف نکردم و تنها با متد post و اتصال به صفحات مربوطه به این متدها و عملیات ها دسترسی داده شده و بجز چند مورد بسیار جزئی (مثل شماره صفحه و موارد مشابه جهت نمایش مطالب) از get استفاده نشده در پروژه
    روشی که در بالا گفتم تنها یک مثال بود ممکن است ریکوئست ناخواسته توسط مهاجم حتی با متد پست به طرق دیگری ارسال شود. مثلا در یک سایتی که معمولا سر میزنید اینجکت شود. یا داخل یک صفحه وب با جاوااسکریپت پیاده شده باشد و لینک این صفحه را برای شما ایمیل کنند و شما لینک را باز کنید. بنابراین به صرف استفاده از متد پست از توکن گذر نکنید. حتما در تمامی صفحاتی که حذف یا ویرایش در اطلاعات رخ میدهد از توکن استفاده کنید.


    نقل قول نوشته شده توسط hgfhjgjh مشاهده تاپیک
    امکانش هست لینک مقاله را ارسال بفرمایید
    مقاله ای که مد نظرم بود را پیدا نکردم:

    ولی این دو مطلب بسیار مفید هستند:
    در این مقاله بسیار خلاصه موارد مهم را اشاره کرده است:
    https://www.sitepoint.com/8-practice...-your-web-app/

    و در این مطلب نیز نکات مهم امنیتی در php آورده شده است.
    https://www.php.net/manual/en/security.php

    من حملات brute-force را ندیدم در این دو مقاله در مورد آن نیز مطالعه کنید.

    فارسی هم اگر دوست دارید می توانید جستجو کنید مطالب خوبی پیدا خواهید کرد مثلا:
    https://daskhat.ir/tag/نکات-امنیتی-در-php/

  13. #13

    نقل قول: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بود

    ممنونم بابت توضیحات و راهنمایی هاتون

  14. #14

    نقل قول: ایجاد کد یکبار مصرف در هر فرم و مطابقت با صحت کد در سمت سرور PHP و ثبت فرم در صورت صحیح بود

    نقل قول نوشته شده توسط plague مشاهده تاپیک
    بعضیا روی حریم شخصیشون حساس هستن این سایتا میخان به اونا اطمینان بدن
    توی ایران کسی زیاد اهمیت نمیده به این مسائل
    درود اینطوری هم نیست
    اروپا چند سالی هست قانونی ثبت کرده که برای استفاده از کوکی باید از کاربر بپرسی وگرنه سایت متخلف در اروپا فیلتر میشه (از اون ادا ادفارهای اروپاست دیگه) ولی اسیا و.. اینطور نیست اینم به اینخاطره که با کوکی ماین میکردند
    آخرین ویرایش به وسیله boot man : شنبه 12 مرداد 1398 در 19:00 عصر

تاپیک های مشابه

  1. پاسخ: 2
    آخرین پست: چهارشنبه 03 شهریور 1395, 23:27 عصر
  2. پاسخ: 0
    آخرین پست: جمعه 18 اردیبهشت 1394, 12:36 عصر
  3. پاسخ: 1
    آخرین پست: پنج شنبه 04 دی 1393, 01:43 صبح
  4. پاسخ: 5
    آخرین پست: چهارشنبه 06 دی 1391, 19:17 عصر
  5. سوال: روش بازیابی فایل ویدیویی به صورت فریم به فریم به چه صورتی است؟
    نوشته شده توسط Sahari_65 در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: دوشنبه 03 فروردین 1388, 18:37 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •