اذهب إلى المحتوى

لوحة المتصدرين

  1. محمد تتان

    محمد تتان

    الأعضاء


    • نقاط

      1

    • المساهمات

      0


  2. Asaad Kasas

    Asaad Kasas

    الأعضاء


    • نقاط

      1

    • المساهمات

      62


  3. Khaled Osama3

    Khaled Osama3

    الأعضاء


    • نقاط

      1

    • المساهمات

      1585


  4. ايمن ميلاد

    ايمن ميلاد

    الأعضاء


    • نقاط

      1

    • المساهمات

      247


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 01/05/24 في كل الموقع

  1. عدل علي كود تالي اخي ما فهمتك <div class="col-6 row"> <div class=""> <label for="fname">اسم الموظف :</label> <input type="text" id="fname" name="fname"><br><br> </div> <div class=""> <label for="fname"> اسم الاب:</label> <input type="text" id="fname" name="fname"><br><br> </div> </div> هو صف مقسم لي 12 عمود انا به label وinput و label وinput اذا div اول ياخد col-6 و div اخر ياخد col-6
    1 نقطة
  2. ماهو مجال Science in Data Analytics Engineering بالضبط ؟ هل هو مجال مطلوب وماهي المهارات التي يحتاجها هذا المجال شكرا ...
    1 نقطة
  3. المشكلة هنا في طريقة تفسير escape characters \r و \b في مخرج cout. طريقة عمل escape characters تختلف باختلاف البرنامج أو اللغة. في سي++ escape character: - \r يعيد توضع المؤشر إلى بداية السطر. - \b يعيد حذف الحرف الأخير. لكن cout لا يدعمهما بالشكل المتوقع. فاذا جربت اكثر من برنامج او كومبيلر (يمكنك تجربه online complier) ستجد البعض يتعامل مع escape characters والبعض الاخر لا يتعامل معه. فالاختلاف من الممكن ان يكون في الاعتماد على نظام التشغيل المستخدم في بعض الحالات. ولكن لا تتوقف هنا فيمكنك الرجوع لتوثيق اللغة/المكتبة لمعرفة طريقة عملها, او تجنب استخدام escape واستعمال حلول برمجية محلية بدلا منها.
    1 نقطة
  4. مرحباً, لحماية التطبيق الخاص بك وتنفيذ حد لمحاولات إدخال كلمة المرور الخاطئة، يمكنك اتباع الخطوات التالية في العمل على الجانب الخلفي والأمامي: الجانب الخلفي (Back-end) إنشاء قاعدة بيانات لتخزين معلومات المستخدمين، بما في ذلك الاسم وكلمة المرور وعدد المرات التي تم فيها إدخال كلمة المرور الخاطئة. عندما يقوم المستخدم بإدخال كلمة مرور خاطئة، قم بزيادة عدد المحاولات الفاشلة في قاعدة البيانات. قم بفحص عدد المحاولات الفاشلة للمستخدم بعد كل محاولة، وإذا وصلت إلى الحد المحدد (مثل ٥ مرات)، فقم بتحديث حالة المستخدم إلى "محظور" واحفظ وقت الحظر في قاعدة البيانات (مثل تاريخ ووقت الحظر). عندما يحاول المستخدم المحظور الوصول إلى الموقع، قم بفحص وقت الحظر المخزن وقارنه بالوقت الحالي. إذا انتهت فترة الحظر، قم بإزالة حالة المستخدم "المحظور" وأعد عدد المحاولات الفاشلة إلى الصفر. الجانب الأمامي (Front-end) عند إدخال كلمة المرور في واجهة المستخدم، قم بإرسالها إلى الخادم باستخدام طلب HTTP. استخدم استجابة الخادم لفحص ما إذا كانت كلمة المرور صحيحة أم لا. إذا كانت كلمة المرور خاطئة، فقم بعرض رسالة خطأ للمستخدم وتحديث عدد المحاولات الفاشلة التي تمت. عندما يتم حظر المستخدم، قم بعرض رسالة له يبلغه فيها عن حظره ومتى سينتهي الحظر. مثال عملي : بفرض لدينا تطبيق Express و React , فسوف نقوم بالتالي : من الجانب الخلفي Express : // Import required modules and set up database connection // Route to handle login requests app.post('/login', async (req, res) => { const { username, password } = req.body; try { // Fetch user from the database based on the username const user = await User.findOne({ username }); if (!user) { return res.status(404).json({ message: 'Invalid username or password' }); } // Check if password matches const passwordMatches = await user.comparePassword(password); if (!passwordMatches) { // Increase the failed login attempts for the user user.failedAttempts += 1; await user.save(); if (user.failedAttempts >= 5) { // Set the user status to "blocked" and save the block time user.status = 'blocked'; user.blockedUntil = Date.now() + (2 * 60 * 60 * 1000); // Block for 2 hours await user.save(); return res.status(401).json({ message: 'Your account has been blocked. Please try again after 2 hours.' }); } return res.status(401).json({ message: 'Invalid username or password' }); } // Reset the failed login attempts and save the user user.failedAttempts = 0; await user.save(); // Generate and return the authentication token const token = generateAuthToken(user); res.json({ token }); } catch (error) { console.error(error); res.status(500).json({ message: 'Internal server error' }); } }); من الجانب الأمامي React : import React, { useState } from 'react'; const LoginForm = () => { const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const handleSubmit = async (e) => { e.preventDefault(); try { const response = await fetch('/login', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ username, password }), }); if (response.ok) { const { token } = await response.json(); // Store the token in local storage or state for future requests } else { const { message } = await response.json(); setError(message); } } catch (error) { console.error(error); setError('An error occurred. Please try again later.'); } }; return ( <form onSubmit={handleSubmit}> <input type="text" value={username} onChange={(e) => setUsername(e.target.value)} /> <input type="password" value={password} onChange={(e) => setPassword(e.target.value)} /> <button type="submit">Login</button> {error && <p>{error}</p>} </form> ); }; export default LoginForm; لاحظ أنه من الجانب الخلفي قمنا بحظر المستخدم لمدة ساعتين عندما قام بالمحاول 5 مرات بإدخال كلمة المرور . وأيضاً نقوم بإرجاع رسالة الخطأ من الجانب الخلفي , ومن الجانب الأمامي نقوم فقط بعرضها . بالإضافة إلى تنفيذ حد لمحاولات إدخال كلمة المرور، هناك بعض النصائح الأمنية الأخرى التي يجب مراعاتها: تخزين كلمات المرور بشكل آمن باستخدام تقنيات التجزئة (hashing) و (salting) لمنع الوصول إلى الكلمات المرور الأصلية. استخدم HTTPS لتأمين اتصالاتك وتشفير بيانات المستخدم الحساسة أثناء النقل. قم بتنفيذ إجراءات الحماية من هجمات Cross-Site Scripting (XSS) وCross-Site Request Forgery (CSRF) وInjection وغيرها من هجمات الأمان الشائعة. تحقق من صحاستخدم مكتبة حماية الهوية والوصول الموثوق بها في إطار العمل الخاص بك، مثل Passport.js، لإدارة عملية المصادقة والتحقق من صحة كلمات المرور وإدارة الحظر والحماية الأخرى.
    1 نقطة
  5. سنستكشف سويةً بتبسيط شديد ما هي تقنية كوبرنتيس Kubernetes أو K8s، وكيف تستعمل لأتمتة عملية نشر Deploy الحاويات containers على خوادم لينكس موزعة. سنناقش في هذا الفيديو ميزات كوبرنتيس الأساسية ولماذا أصبحت تستعمله الشركات ذات التطبيقات الضخمة، ثم نستكشف متى يكون من المنطقي استعماله لنشر تطبيقاتنا. إذا أردت التعرف أكثر على البرمجة ولينكس، فننصحك بالانضمام إلى دورة علوم الحاسوب، ولا تنسَ الاستعانة خلال رحلة تعلمك وعملك بتوثيقات موسوعة حسوب المجانية. وإذا أردت متابعة المعلومات البرمجية العلمية مكتوبة فيمكنك الاطلاع على قسم البرمجة في أكاديمية حسوب، كما يمكنك متابعة جديد الفيديوهات التقنية المتاحة على يوتيوب أكاديمية حسوب مجانًا.
    1 نقطة
×
×
  • أضف...