ما اريده بالضبط هو التالي:
لنتخيل لدي موقع يجلب 10 اسئلة عشوائية للعضو، في كل مرة يقوم العضو بالجواب الصحيح تزيد نقاطه بعدد 1، كل يوم يمكن ان تتكرر بعض الاسئلة، السؤال هو كيف امنع مستخدم عابث من بعث طلب الى نقطة زيادة عدد النقاط (اي الغش)
ما اريده بالضبط هو التالي:
لنتخيل لدي موقع يجلب 10 اسئلة عشوائية للعضو، في كل مرة يقوم العضو بالجواب الصحيح تزيد نقاطه بعدد 1، كل يوم يمكن ان تتكرر بعض الاسئلة، السؤال هو كيف امنع مستخدم عابث من بعث طلب الى نقطة زيادة عدد النقاط (اي الغش)
لا يجب ان تبعث الزيادة بهذه الطريقة، انما يجب ان يتم التحقق من الاجابة وزيادة النقطة داخل كود السيرفر، ما يبعث من الواجهة هو رقم السؤال واجابته فقط.
فتتحقق على السيرفر من كل ما تريد مثل:
الاجابة صحيحة
لديه صلاحية الاجابة على هذا السؤال (من ضمن ال 10 المخصصة له)
لم يقم بلاجابة عليه سابقاً (او على الاقل لا يرسله بشكل متكرر ان كنت ستسمح بالتكرار)
...
شكراً لك، اعتقد اني قررت ان ازيد نقطة واحدة فقط لكل سؤال لاول مرة فقط، وباقي المرات لن يأخذ العضو نقطة على الاجابة على سؤال متكرر
عند ارسال الجواب مع ال id و API يعتمد oAuth2
مثال :
http://ex.com/api/1.0 [KEY]/user_id/question_id/ احفظ question_id و user_id في جدول منفصل بحيث تستطيع حساب النقاط من هذا الجدول
tab user_question
id
user_id
question_id
...
لمعرفه عدد النقاط للمستخدم
select count(user_id) where user_id=[VAL]
الخ
يجب ان تتأكد من صحة الإجابة على السرفر قبل إرسال طلب زيادة نقطة، فإذا كانت خاطئة لا يتم إرسال طلب زيادة نقطة
:O
يا رجل يعني ان تحققت على السرفر لا يكون المستخدم قادر على بعث نفس الاجابة 1000 مرة وزيادة 1000 نقطة ؟
لا ، كان هناك سوء فهم في الأول ،
يمكنك عمل جدول جديد ، يكون إسمه مثلا question_user يتم إضافة record به user_id و question_id حيث يتم إضافة record جديد به ID العضو و IDالسؤال الذي أجاب عليه إجابة صحيحة عند الإجابة ، وقبل إرسال طلب إضافة نقطة تتأكد أن هذا العضو والسؤال ليسا متواجدين ... فإن كانا متواجدين لا يتم إرسال طلب زيادة نقطة
قم بإستخدام مفتاح حماية او تحقق
يستخدم دخال الـ form ويكون مخفي هذا شرح لطريقة صنع واحد بإستخدام PHP
يمكنك ايضًا إستخدامة مع الـ GET و POST
ﻻ لن يستطيع لان الطلب يخزن في $_SESSION
وعند تنفيذ الطلب عن طريق متصفح اخر او عبر امر curl لن يستطيع
بالإضافة لذلك كل طلب يتغيير فيه مفتاح الامان او التحقق
التعليقات