النتائج 1 إلى 7 من 7

الموضوع: طريقة لتشفير المتغيرات في الروابط دون استخدام ال rewrite mode

  1. #1
    عضو جديد
    تاريخ التسجيل
    Sep 2007
    المشاركات
    20

    تشفير المتغيرات في الروابط دون استخدام ال rewrite mode



    طريقة لتشفير المتغيرات في الروابط دون استخدام ال rewrite mode كنت قد قمت ببرمجتها قبل سنتين قبل ان اتعرف على طريقة التشفير باستخدام الريرايت مود..

    الطريقة بسيطة وتعتمد على خطوتين:

    الخطوة الأولى هي القيام بتشفير العنوان عن طريق دالة سنسميها url_encode هذه الدالة تستقبل متغير واحد وهو رابط العنوان الذي سنقوم بتشفيره، وبالدالة نفسها نقوم بتشفير محتوى المتغير، ويكون التشفير كيفما يشاء المبرمج في المثال قمت باستخدام تشفير base64.. واستخدام الدالة في برنامج الموقع يكون عن طريق استدعائها اثناء التنفيذ.. وكتابة المتغيرات التي ستكون في عند الإستدعاء وستعيد الدالة الرابط المشفر...

    كود PHP:
     
    function url_encode($var) { //الدالة واستقبال المتغير$var = base64_encode($var); //تشفير محتوى المتغير وحفظه
    return $var// ارجاع قيمة المتغير
    }
     
    echo 
    "<a href=\"/index.php?".url_encode("id=10&action=article")."\">العنوان</a>"//استدعاء الدالة وطباعة المخرجات 
    الخطوة الثانية وهي ترجمة وفك تشفير الروابط المشفرة عن طريق بضعة اوامر تكون في ملف رئيسي في برنامج الموقع وتكون السطور في بداية البرنامج بحيث ان ما سيتم تنفيذه هو ما سيحدد توجه المستخدم لأي قسم وهو ما سيترجم محتوى المتغيرات في الGET... وذلك يكون بوضع الرابط في متغير وعن طريق الدالة parse_url نقوم بفصل الرابط ووضع خصائصه في مصفوفة ونقوم بحفظ المحتوى بعد ؟ في متغير .. هذا المتغير سيتم فك تشفيره بعد التأكد من ان الصفحة قد تم استدعاؤها عن طريق رابط مشفر لذلك نحفظ نفس المحتوى في رابط اخر.. نقوم باخراج المتغيرات عن طريق الدالة parse_str التي تقوم باستخراج المتغيرات من عنوان GET عادي وتحفظ المتغيرات في مصفوفة.. نقوم بفحص محتوى اي متغير نستخدمه في الصفحة في المثال استخدمت id فان كان المحتوى فارغا فالصفحة مشفرة وان كان غير ذلك فالصفحة قد استدعيت من رابط غير مشفر لذلك نقوم بالتشفير الآلي ويتم النقل لنفس الصفحة بالعنوان المشفر...

    بعد فحص الرابط والتأكد من انه مشفر نقوم بفك التشفير وذلك بالتوجه للمتغير الأول الذي كنا قد وضعنا فيه محتوى الرابط المشفر وفك التشفير مجددا عن طريق الدالة base64_decode التي تعيد الرابط الى اصله وهي عكس دالة التشفير التي استخدمناها في هذا المثال اعلاه...
    بعد ذلك يتم استخراج محتوى الرابط الذي تم فك تشفيره ونضع كل متغير على حدة بذلك يكون الأمر وكأن الإستدعاء تم مباشرة دون تشفيره... فالتشفير تم فكه والمتغيرات اصبحت وكأنها قد كتبت في سطور البرنامج نفسه.

    كود PHP:
     
    $page 
    $_SERVER["REQUEST_URI"]; // وضع الرابط في متغير
    $page =parse_url($page); // هذه الدالة تقوم بفصل الرابط ووضع خصائصه في مصفوفة
    $query1 $page['query']; // نختار من المصفوفة المتغير query وهو كل ما يأتي بعد ال؟ اي جميع المتغيرات في ال get وفي حالتنا هذه متغير واحد مشفر بعد فك تشفيره سيحتوي على جميع المتغيرات التي نحتاجها 
    $query3 $page['query']; // بعد ان وضعنا الرابط المشفر في متغير وقبل فك تشفيره نحتاج لأن نتأكد ان الصفحة قد استدعيت من رابط مشفر اصلاً لذلك نضع الرابط المشفر في متغير اخر
    parse_str($query3$output); // نقوم باخراج المتغيرات عن طريق هذه الدالة التي تقوم باستخراج المتغيرات من عنوان GET عادي وتحفظ المتغيرات في مصفوفة 
    $output $output['id']; // ونقوم بحفظ اي متغير نستعمله في الصفحة من المصفوفة
     
    if ($output != "") { // نتأكد من انه فارغ فإن كان كذلك فان الصفحة مشفرة لأن عملية الإستخراج للمتغير لم تتم لأن الرابط الأول مشفر اصلا وان كان المتغير له محتوى فان الصفحة قد استدعيت من رابط غير مشفر
     
    $page1 "index.php?".encode($query3); // ان كانت الصفحة غير مشفرة نقوم بتشفير الرابط
     
    @header("Location: $page1"); // ويتم تحويل المستخدم الى نفس الصفحة بعنوان مشفر
    exit();
     

    اما الآن وبعد التاكد من ان الصفحة قد استدعيت عن طريق العنوان المشفر يمكن فك التشفير واستخراج المتغيرات

    كود PHP:
     
    $query1 
    base64_decode($query1); // فك التشفير ووضع المحتوى الغير مشفر في متغير وسيحتوي على : "id=10&action=article" وهو ما قمنا بتشفيره في البداية
    parse_str($query1); // ثم نقوم باستخراج المتغيرات الموجودة في رابط من نوع GET بذلك يكون الإستدعاء وكأنه تم مباشرة ولكن بطريقة ملتوية يتم عن طريقها تشفير المحتوى!!
    ستكون المتغيرات هكذا:
     
    $id=10
     
    $action=article
    وتكون النتيجة استخدام المتغيرات بشكل طبيعي وكأنها لم تشفر اصلا... يمكن الإستفادة من هذه الدالة في حال كنت لا تود ان تفضح المتغيرات ولكن دون استخدام الريرايت مود... كان بالنسبة لي وقتها مجرد تحدي وحبيت اشارككم فيه لتعم الفائدة...





    التعديل الأخير تم بواسطة خادم الفاروق عمر ; 03-09-2007 الساعة 09:33 AM


  2. #2
    عضو جديد
    تاريخ التسجيل
    Sep 2007
    المشاركات
    24


    فكره جميله جدا اخي
    ولكن اليس هاذا يصعب عمل محركات بحث؟؟؟
    وجعله لا يتوافق مع SEO






  3. #3
    عضو جديد
    تاريخ التسجيل
    Sep 2007
    المشاركات
    20


    هذه احد سلبيات هذه الطريقة لكن يمكن استخدامها بسهولة مع ال TREE للروابط لكن كل ما يأتي خلف ال؟ يكون مشفراً لذلك يعود الأمر بالسلب بالنسبة لمحركات البحث...

    وكما قلت يمكن الإستفادة من الأمر لتشفير روابط معينة وبحالات خاصة...






  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    547


    أصدقائي الأعزاء، بخصوص محركات البحث فإن المشكلة عادة أنها لا تقرأ أي وسطاء (بارامترات) يتم تمريرها إلى الكودات البرمجية الديناميكية مثل PHP، في حين أنها تعطي أفضل أداء عند التعامل مع صفحات HTML الساكنة.

    لذا فقد قمت ذات مرة منذ قرابة السنوات الثلاث بتطوير أسلوب يستخدم هذه الميزة في إيهام المتصفح أنها صفحات HTML ساكنة في حين أنها ليست كذلك، وهو ما يعطي أفضل أداء مع محركات البحث.

    فمثلا إن كنت تستدعي برنامجك بالطريقة التالية:
    browse.php?id=12

    حينها يمكن أن تضيف القاعدة التالية إلى ملف htaccess الموجود في الجذر الرئيسي للموقع:
    كود:
    RewriteRule ^browse-([0-9]*).html browse.php?id=$1 [L,NC]
    وفي هذه الحالة تستطيع استدعاء تلك الصفحة ذاتها باستخدام العنوان التالي:
    browse-12.html

    وبالتالي فإن جميع الروابط الديناميكية في موقعك سيتم فهرستها بالكامل من قبل محركات البحث، وكمثال عملي على ذلك إنظر الرابط التالي لإحدى المواقع التي طورتها باستخدام نظام إدارة المحتوى خاصتي والذي يتضمن تلك السمة في إحدى مزاياه:
    http://www.carsyr.com

    أرجو أن تكون مداخلتي هذه قد حملت الفائدة لكم





    __________________
    خالد الشمعة - Khaled Al-Shamaa
    PHP and Arabic language

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Sep 2007
    المشاركات
    91


    فكره جميله جدا اخي





    __________________

    حمايه سيرفرات
    اغلاق 10 ثغرات cpanel بمقابل بسيط حجز ترخيص
    سكربت vBSEO وترخيص منتدى مدى الحياه
    مده الحمايه تصل الى شهر كامل فقط
    gameaisgod@windowslive.com

  6. #6
    عضو جديد
    تاريخ التسجيل
    Sep 2007
    المشاركات
    20


    اقتباس المشاركة الأصلية كتبت بواسطة DNSerror
    أصدقائي الأعزاء، بخصوص محركات البحث فإن المشكلة عادة أنها لا تقرأ أي وسطاء (بارامترات) يتم تمريرها إلى الكودات البرمجية الديناميكية مثل PHP، في حين أنها تعطي أفضل أداء عند التعامل مع صفحات HTML الساكنة.

    لذا فقد قمت ذات مرة منذ قرابة السنوات الثلاث بتطوير أسلوب يستخدم هذه الميزة في إيهام المتصفح أنها صفحات HTML ساكنة في حين أنها ليست كذلك، وهو ما يعطي أفضل أداء مع محركات البحث.

    فمثلا إن كنت تستدعي برنامجك بالطريقة التالية:
    browse.php?id=12

    حينها يمكن أن تضيف القاعدة التالية إلى ملف htaccess الموجود في الجذر الرئيسي للموقع:
    كود:
    RewriteRule ^browse-([0-9]*).html browse.php?id=$1 [L,NC]
    وفي هذه الحالة تستطيع استدعاء تلك الصفحة ذاتها باستخدام العنوان التالي:
    browse-12.html

    وبالتالي فإن جميع الروابط الديناميكية في موقعك سيتم فهرستها بالكامل من قبل محركات البحث، وكمثال عملي على ذلك إنظر الرابط التالي لإحدى المواقع التي طورتها باستخدام نظام إدارة المحتوى خاصتي والذي يتضمن تلك السمة في إحدى مزاياه:
    http://www.carsyr.com

    أرجو أن تكون مداخلتي هذه قد حملت الفائدة لكم
    الأخ DNSerror ان ما تقوله مفهوم ضمناً، وطريقة الRewrite هي الأقوى في اخفاء، ترتيب، تحويل... الروابط...

    ان الموضوع كان مجرد تحد، وهو طريقة لإيجاد حل في حال لم يكن الRewrite موجوداً.. او لا نريد استعماله!!

    اشكر مرورك






  7. #7
    عضو جديد
    تاريخ التسجيل
    Sep 2007
    المشاركات
    20


    اقتباس المشاركة الأصلية كتبت بواسطة Wael is the winner
    فكره جميله جدا اخي
    شكراً لك اخي










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض