في هذه المرحلة، هناك أنشطة تصويت لا نهاية لها يتم إجراؤها في WeChat Moments، وأعتقد أن العديد من الطلاب منزعجون بالفعل من هذا، لأن الأشخاص (الأقارب أو الأصدقاء أو أي شيء آخر) سيظهرون دائمًا من وقت لآخر ليطلبوا منك التصويت لهم.
لا تهدف هذه المقالة إلى استكشاف هذه القضية على المستوى الأخلاقي أو العاطفي. ما يهمني هو أن معظم أنشطة التصويت الحالية بها في الواقع ثغرات واضحة، ويمكن تحقيق "التلاعب بالأصوات" من خلال وسائل تقنية بسيطة.
هنا مثال.
عقد مركز تجاري لتصفيف الشعر عبر الإنترنت (يشار إليه فيما بعد باسم S Mall) حدثًا للتصويت عبر الإنترنت على منصة WeChat، ويمكن لمستخدمي WeChat الوصول إلى صفحة التصويت من خلال رابط الحدث والتصويت لأعمال مصففي الشعر المفضلين لديهم، ويمكن لكل حساب WeChat التصويت لصالح Cast فقط 1 صوت للعمل الواحد.
تظهر صفحة نشاط التصويت أدناه:
ظاهريًا، نفذت S Mall بالفعل إجراءات لمكافحة الغش في أنشطة التصويت لأن كل مستخدم WeChat مقيد بصوت واحد فقط في اليوم. إذا قام المستخدمون بالوصول إلى خدمة التصويت هذه بشكل طبيعي من خلال WeChat للتصويت، فسيكون لذلك التأثير المطلوب بالفعل.
ومع ذلك، إذا قمت بعرض العنوان الأصلي لصفحة التصويت، أي اضغط باستمرار على الصفحة واسحبها لأسفل، فستجد أن "صفحة الويب هذه مقدمة بواسطة XXX" معروضة في الجزء العلوي من الشاشة أن "XXX" هنا ليس "mp.weixin.qq.com"، ولكنه اسم مجال S Mall. بمعنى آخر، يتم تشغيل برنامج نشاط التصويت هذا على خادم S Mall.
بناءً على التحليل أعلاه، يمكن استنتاج أن مخطط طوبولوجيا الشبكة لعمليات تصويت المستخدم يجب أن يكون كما يلي:
عندما يصل مستخدم WeChat إلى صفحة التصويت، يقوم خادم WeChat بإعادة توجيه الطلب فقط، ويتم إجراء عد الأصوات المحددة والتحقق منها على خادم S Mall.
إذًا، كيف يميز S Mall بين مستخدمي التصويت؟
يتضمن هذا مفهوم منصة WeChat العامة OpenID
. التفسير الرسمي لـ OpenID
هو: بعد تشفير معرف WeChat، يصبح OpenID لكل مستخدم لكل حساب رسمي فريدًا.
من السهل التحقق من ذلك، ما عليك سوى استخدام حسابات WeChat متعددة للتصويت، والتقاط حزم الشبكة أثناء عملية التصويت، والتحقق من المعلمات في POST للتأكيد.
وبناءً على ذلك، ستتضمن منصة WeChat العامة OpenID
الخاص بالمستخدم في معلمة POST عند إعادة توجيه طلب التصويت؛ بعد أن يتلقى S Mall طلب POST للتصويت، يمكنه منع تصويت واحد عن طريق الاستعلام عما إذا كان OpenID
الحالي قد صوت في ذلك اليوم. صوت المستخدم مرارا وتكرارا.
ومع ذلك، هناك ثغرة كبيرة هنا!
يمكن لـ S Mall فقط تحديد ما إذا كان OpenID
مكررًا، لكن لا يمكنه التحقق من صحة OpenID
لأنه لا يمكنه الاتصال بخادم WeChat للتحقق من OpenID
.
بعد توضيح هذه الثغرة، أصبح من السهل جدًا تحقيق تنظيف التذكرة.
OpenID
مختلفة بشكل عشوائي وقم بإجراء طلبات POST متكررة.إذا كنت ترغب في تنفيذ عملية تنظيف التذاكر دفعة واحدة أو عمليات تنظيف التذاكر تلقائيًا، فيمكنك تنفيذ طلبات تنظيف التذاكر من خلال البرامج النصية لـ Python، ويمكنك أيضًا استخدام LoadRunner.
قم بتشغيل VoteRobot.py
، وسيكون سجل الإخراج كما يلي:
======== Start to vote zpid(38), Total votes: 3
1 tickets has been voted, the next ticket will be voted after 35 seconds.
2 tickets has been voted, the next ticket will be voted after 31 seconds.
3 tickets has been voted, the next ticket will be voted after 10 seconds.
======== Voting Ended!
تجدر الإشارة إلى أنه من الأفضل عادةً أن يكون لديك فاصل زمني عشوائي عند تنظيف التذاكر تلقائيًا، ومن الأفضل محاكاة الأجهزة المختلفة ديناميكيًا، أي تعديل User-Agent
. وإلا، يمكن للخادم تحديد سلوك الغش بسهولة.
عند رؤية ذلك، قد يشعر بعض الطلاب بالسعادة سرًا، هل يمكن استخدام هذه الطريقة "لسحب الأصوات" في الأصوات المستقبلية؟
للأسف، بالطبع لا.
وفي الواقع، فإن الثغرات الموجودة في هذه المقالة منخفضة المستوى للغاية، ومع ذلك، لا تزال هناك نسبة كبيرة من أنشطة التصويت التي تستخدم هذا النموذج.
ومن السهل أيضًا معرفة ما إذا كان من الممكن تزوير حملة التصويت بهذه الطريقة. باستخدام الطريقة الموضحة في هذه المقالة، إذا كان عنوان URL للحدث ليس WeChat رسميًا، ولم يكن هناك تحقق إضافي في عملية التصويت بأكملها، فإن احتمال الغش مرتفع جدًا، ثم التقط الحزمة لرؤية عملية تفاعل الاتصال؛ واستخدامها بعد تعديل معلمات أداة طلب الشبكة وإعادة الطلب، يمكنك التحقق مما إذا كان الغش ممكنًا بالفعل.
بالإضافة إلى ذلك، قد يرغب بعض الأشخاص في التساؤل، هل من المستحيل منع "التلاعب بالأصوات" في أنشطة التصويت عبر الإنترنت؟
الجواب هو أنه من الصعب بالفعل القضاء عليه بالكامل. هل سمعت من قبل عن المستغل 12306؟ هل سمعت من قبل عن تطبيق Apple Store الذي يرتب التطبيقات بشكل احترافي؟ هل سمعت من قبل عن "متصيدي الإنترنت" و"حزب الـ50 سنتًا"؟
ومع ذلك، يمكن لمنظمي الحدث استخدام بعض الوسائل لرفع حد الغش بشكل كبير. على سبيل المثال، تستخدم العديد من الأنشطة الحالية الطرق التالية:
بغض النظر عن أي من هاتين الطريقتين يتم استخدامه، فإن أسلوب "تجاهل التصويت" في هذه المقالة غير فعال تمامًا.