14

بحمد الله انتهيت مؤخراً من برمجة وتصميم واجهة استخدام سكربت إيفاد لمساعدة أصحاب المواقع والاستضافات بنقل الملفات كبيرة الحجم بين السيرفرات بسهولة وسرعة.

السكربت عبارة عن ملف واحد بسيط يعمل بلغة PHP, وبتقنية jQuery.ajax لزيادة قابلة الاستخدام.

المميزات وطريقة التشغيل موضحة بالموقع.

أرحب بآراءكم ومقترحاتكم..

13

بروتكول FTP هو مصيبة المصائب من ناحية امنية فلا كلمة السر ولا البيانات يتم تشفيرها.

والبديل الأمن هو SSH و SFTP واستخدامه سهل للغاية:

scp src_file dst_host:dst_file

كما يمكنك استخدام puplickey للقيام بالنقل بشكل دوري دون الحاجة لاستخدام كلمة سر.

أعتقد أن السكربت مفيد لمساعدة من لا يملك وصول للـ SSH ولا الـ Unix commands كما هو الحال في أغلب اصحاب المواقع الذين يستأجرون استضافات مشتركة.

12

لم أقرأ الكود بشكل كامل و لم أجربه للآن. كنت من مبرمجي PHP لكن تركتها :)

بشكل سريع رأيت :

function create_password($len) { //دالة توليد كلمة المرور, وتستخدم أيضاً في توليد مفتاح تشفير الجلسة
$a =     array('a','b','c','d','e','f','g','h','i','j','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9','~','!','@','#','$','%','^','&','*','(',')','-','=','+','_','{','}','|','<','>','?',',','.','/',';','[',']');
    shuffle($a);
    return substr(implode($a), 0, $len);
}

في دالتك، كل حرف لا يتكرر مرتين. في خطوتك هذه، أرحت المخترق بتقليل احتماليات كلمة السر التي تنتجها دالتك.

بلغة الرياضيات، إذا طول الكلمة السرية المرغوبة هو 12 حرف.

  • عدد كلمات السر التي قد تنتجها دالتك (كل حرف يتكرر مرة واحد فقط) هو 98373462462399553228800

  • عدد كلمات السر التي قد تنتجها دالة تكرر الحروف : 215671155821681003462656

الدالة الأخرى لديها أكثر من ضعفي عدد مُخرجات دالتك.

تم التحديث للتالي لزيادة العشوائية والـ Performance:

function create_password($len) { //دالة توليد كلمة المرور, وتستخدم أيضاً في توليد مفتاح تشفير الجلسة
$a = array('a','b','c','d','e','f','g','h','i','j','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9','~','!','@','#','$','%','^','&','*','(',')','-','=','+','_','{','}','|','<','>','?',',','.','/',';','[',']');
$pwd = '';
for ($i = 0; $i < $len; $i++){
    $pwd .= $a[rand(0, 87)];
}
if (strength($pwd) < 4) return create_password($len);
else return $pwd;
}

ممتاز, سأعمل على معالجة ذلك في أقرب وقت ممكن إن شاء الله تعالى.

بارك الله فيكم..

تم التحديث:

function strength($pwd) { //دالة تقدير قوة كلمة المرور. النتيجة: من 0 إلى 5
    $score = 0;
    if (strlen($pwd) < 4) {return $score;}
    if (strlen($pwd) >= 8) {$score++;}
    if (strlen($pwd) >= 10) {$score++;}
    if (preg_match('/[a-z]/', $pwd) && preg_match('/[A-Z]/', $pwd)) {$score++;}
    if (preg_match('/[0-9]/', $pwd)) {$score++;}
    if (preg_match('/[\'\/~`\!@#\$£%\^&\*\(\)_\-\+=\{\}\[\]\|;:"\<\>,\.\?\\\]/', $pwd)) {$score++;}
    return($score);
}

function create_password($len) { //دالة توليد كلمة المرور, وتستخدم أيضاً في توليد مفتاح تشفير الجلسة
    $a = array('a','b','c','d','e','f','g','h','i','j','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9','~','!','@','#','$','%','^','&','*','(',')','-','=','+','_','{','}','|','<','>','?',',','.','/',';','[',']');
    $pwd = '';
for ($i = 0; $i < $len; $i++){
    shuffle($a);
    $pwd .= $a[0];
}
if (strength($pwd) < 4) return create_password($len);
else return $pwd;
}

تطوير الويب

مجتمع خاص بمناقشة وطرح المواضيع والقضايا العامة المتعلقة بتطوير الويب ولغاتها المختلفة

19.1 ألف متابع