
𓆩Mails𓆪 (Information Technology Jobs)
February 11, 2025 at 08:57 AM
و انت باك اند ف دول شويه حاجات على الماشي لازم تاخد بالك منهم
١- لو اليوزر عمل Change or Reset Password ماتنساش تعمل force expiry لل Auth Tokens بتاعته
٢- لو انت بتطلع OTP واليوزر عمل request لواحد جديد ف المفروض تعمل expiry للقديم
٣- ال OTP Database Column لازم يبقى Char مش Int, لانك لو بتعمل creation ل Random OTP Number ف وارد جداً يكون بيبتدي ب 0 ولو ده حصل وانت عامله ب Int ف هايحصله Ignore وهاتقع في مشكله.
٤- ماينفعش API ال OTP Verification يكون بياخد ال OTP بس, لازم يكون Authenticated ب توكن related ب ال OTP ده
٥- اي API عندك لازم يكون عليه Rate Limiting
٦- لو بتعمل Reset Password واليوزر دخل ايميل مش موجود عندك ماينفعش ترجله ايرور وتقوله الايميل ده مش موجود عندي🫵🏻، لانك كده ممكن يحصل عليك Email Enumeration Attack، ف انسب حاجة انك ترجع Success بغض النظر الايميل ده موجود ولا لا.
٧- استخدم UUIDs افضل من ال Normal IDs بحيث لو انت عامل API دي كده orders/1، مايقدرش يخمن ارقام الاوردرات.(بس خلي بالك ده ممكن يعمل performance issue لو ال Table كبير وهاتحتاج تعمل Index على ال ID ف الافضل ULID)
٨- لو بتاخد اي Input من اليوزر ف انت لازم تحط Max Chars لل Input ده علشان مايبعتلكش input كبير جداً ويحصل عليك DOS Attack او يحصلك Buffer Overflow يعملك مشكله وانت بتعمله retrieve او render ويوقعلك السيرفر.
٩- لو بتتعامل مع ال File Uploads لازم تاخد بالك من الحاجت دي:
- اعمل اسكان للفايلات الي جايالك. (ماتعملهوش على السيرفر 🙄)
- حط ليها Max Size.
- اعمل Check على ال Extension.
- خزن الفايلات دي بره السيرفر على (S3 او R2)
١٠- لازم تعمل Low level Log, يعني على سبيل المثال لو عندك فانكشن فيها ٣ conditions لازم في كل واحد فيهم تحط log انه دخل هنا وعمل كذا، علشان بعد كده تقدر تطلع Request Journy من ال Logs دي لو في عندك مشكله ومحتاج تعمل Debugging.
١١- لو عامل عندك Web Hook او Callbacks وبتاخد في ال Request Params اي Tokens ف وقف ده فوراً لان لو اي حد عمل Sniff على ال Network عندك ممكن يشوف اللينكات دي ومن خلالها يقدر يستخدمها بدل صاحبها، يعني مثلا لو عندك لينك reset password ف لو حد شافه في ال Network ممكن يغير هو الباسورد بدل اليوزر الاساسي.
١٢- استخدم Versioning في ال APIs بتاعتك.
١٣- استخدم Sentry علشان تعمل Monitor وت Catch Exceptions لل APP بتاعك.
١٤- لو عندك Notification System ل Social Media Post, حاول مش كل لايك بيحصل تعمل ليه Notification وتبعتها، الموضوع هايقلب عندك ب ان ال table ده عايكبر بشكل مرعب، الافضل انك تستخدم نفس ال Notification بس ب تعمل update علي ال text بتاعها وتبعتها تاني.
١٥- لو عندك Coulmn في ال Database وممكن اكتر من حد يعدل عليه في نفس الوقت لازم تستخدم Select for Update. علشان تعمل Lock ليه لحد ماتخلص وبكده تكون تفاديت مشكله ال Concurrency
By Mohamed Atif
❤️
4