یه پسر ۱۴ ساله که برنامه نویسی رو دوست داره
ای پی آی دیوار برای ارسال شماره موبایل

امروز که بیکار بودم گفتم ببینم این ای پی آی دیوار برای ورود کاربرا با شماره موبایل چجوری کار می کنه. اول از همه ما یه صفحه ساده داریم که شماره تماس شما رو میگیره برای ورود:

خب بعد از submit کردن، می بینیم یه ریکوئست پست می زنه به اینجا:
https://api.divar.ir/v5/auth/authenticate
عکسش:

خب ببینیم محتویاتش چیه:

یه جیسون ساده است که فقط شماره رو میده! یعنی عملا هیچ encryption وجود نداره. برای همین شما می تونید یه ربات بنویسید که برای همه کد تایید بفرسته.
حالا که اطلاعات لازم رو داریم وقته دست به کد شدنه.
نکته:من می خواستم اینو با node.js بنویسیم ولی انگار همش ۵۰۱ میده برای همین با پایتون می ریم جلو.
یه اسکریپت ساده است که وقتی ران می کنیدش چند ثانیه بعد برای شخص یه پیامک میاد که کد دیوار اینه در حالیکه ما اومدیم شماره رو گذاشتیم. یه نکته ای که هست اینه که من تست کردم معمولا نهایت ۳ تا پیامک برای یه شماره می فرسته.
حالا یه ذره پیچیده اش می کنیم:
این کاری که می کنه اینه که برای همه شماره های ۰۹۱۲ یه کد می فرسته.

با بیست خط کد برای ۱۰۰۰ نفر کد تایید دیوار فرستادیم.
خب این بامزه است اما چیزی که مسخره است اینه که هیچ encryption وجود نداره. دیتا رو همینجوری مفت میدن به سرور و اینجاست که کار خطرناک میشه(مخصوصا تو جاهای مهمتر).
اما یه توضیح درباره ی ارور های این ای پی آی بگم:
"AUTHENTICATION_VERIFICATION_CODE_SENT":
این که معلومه، همه چیز اوکیه. کد ارسال شده.
{"error":"لطفا یک شماره موبایل معتبر وارد نمایید.","code":3,"message":"لطفا یک شماره موبایل معتبر وارد نمایید."}:
این وقتیه که شما شماره رو اشتباه نوشتید. این مثلا بر میگرده از تو سرور و جلوگیری می کنه از وارد شدن دیتایه خراب.
یه ارورم داره که وقتی شما توی یه ساعت بیشتر از ۱۰ تا ریکوئست برای یه شماره می زنید.
اگه سوالی درباره این ای پی آی دارید لطفا تو کامنتا بزارید.
مطلبی دیگر از این نویسنده
ریکرول کردن در ترمینال!
مطلبی دیگر در همین موضوع
داستان gREST؛ گراف دیتابیس و Restful API
بر اساس علایق شما
زنهایی که میخوانند تماشاییترینند