صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 19

الموضوع: مشكله في addslashes

  1. #1

    مشكله في addslashes



    السلام عليكم

    بعد جلب البيانات من الـ form بالطريقه التاليه :

    كود PHP:
    $title addslashes($_POST['title']); 
    وتخزينها في قاعدة البيانات ومن ثم جلبها مره أخرى لعرضها في صفحة ماااا ، اتفااجأ بوجود العلامه \ بين الرموز !!

    مثال :

    تم تخزين الجمله التاليه في قاعدة البيانات : أسأل الله ان أراك يوم القيامة مع " الهادي الحبيب "

    بعد الاستدعااء كانت بالصوره هذي: أسأل الله ان أراك يوم القيامة مع \" الهادي الحبيب \"

    كيف طريقة إلغااء \ \ ؟؟ دون الاستعاااضه عن addslashes للحيلوله دون تنفيذ استعلامات خبيثه ؟







  2. #2


    الدالة العكسية stripslashes
    http://www.php.net/manual/en/function.stripslashes.php

    تحياتي، sBForum





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  3. #3
    عضو فعال
    تاريخ التسجيل
    Jul 2003
    المشاركات
    1,576


    أثير الإمارات:

    ال addslahes يتم اجرائها قبل اضافة الجملة لقاعدة البيانات ..

    مجرد ان يتم اضافة هذه الجملة " الهادي الحبيب " إلى قاعدة البيانات .. هذه هي المشكلة بعينها


    واثناء الاستدعاء من القاعدة .. لا داعي لاستخدامها ..


    تحياتي





    __________________
    SWF Thumbnail - tweet me

  4. #4


    اقتباس المشاركة الأصلية كتبت بواسطة sBForum
    الدالة العكسية stripslashes
    http://www.php.net/manual/en/function.stripslashes.php

    تحياتي، sBForum
    باااااارك الله فيك .. اشتغل كل شي ميه الميه ..

    _____

    Egyptechno

    المشكله بعد عملية الاستدعاء ، ولازم نلغي السلااشات باستخدام الداله stripslashes






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


    أخواني هل من تفصيل اكثر حول استخدام هذه الدالة وماهو الفرق بينها وبين htmlspecialchars وبين intval فانا مبتدئ واخشى من استغلال مثل هذه الثغرات في أعمالي .






  6. #6


    اقتباس المشاركة الأصلية كتبت بواسطة أصيل2005
    أخواني هل من تفصيل اكثر حول استخدام هذه الدالة وماهو الفرق بينها وبين htmlspecialchars وبين intval فانا مبتدئ واخشى من استغلال مثل هذه الثغرات في أعمالي .
    عزيزي أصيل2005 ،

    htmlspecialchars تقوم بتحويل اشارات [ رموز ] الـ HTML إلى رموز غير قابلة للتنفيذ .. مثل < و > فأنها تصبح &gt; و &lt; حتى لا يتم تنفيذ كود HTML والذي يخشى عند تنفيذه تنفيذ اكواد جافاسكربت لسرقة الكوكيز او ما شابه ..

    جرب مثلاً هذا الكود :
    كود PHP:
    echo "<font size='2'>يتم تنفيذ كود HTML</font>"
    ولاحظ انه يتم تنفيذ كود الـ HTML ويتم تغيير حجم الخط .. اما لو جربت هذا الاخر:
    كود PHP:
    echo htmlspecialchars("<font size='2'>يتم تنفيذ كود HTML</font>"); 
    لاحظ أنه تم طباعة الكود نفسه ولم يتم تنفيذه .. وهذا ما يقوم بحماية الصفحة من تنفيذ كود HTML والذي يتضمن JavaScript ......

    للمزيد : http://www.php.net/htmlspecialchars

    بالنسبة لـ intval فهي تقوم بتحويل المتغير الذي يتم تمريره إليها إلى قيمة عدد صحيح integer.. هذه تستخدم في حالة أنك تريد تمرير رقم فقط في متغير ، فلو تم تمرير أي نص هذه الدالة تغير المحتوى إلى رقم 0 .. وهكذا تضمن في حالة رغبتك بالحصول على رقم عدم وجود أي نص أو كود برمجي يتم تنفيذه خلال صفحاتك من الخارج .. بعكس الاولى التي نستخدمها لحالة منع تنفيذ النص مع الرغبة بالحصول على نص وليس رقم ..

    مثلاً :
    كود PHP:
    echo intval(55); 
    تطبع 55 .. لكن :
    كود PHP:
    echo intval("متغير نصي"); 
    فإنها تطبع القيمة الصحيحة 0 ......

    للمزيد: http://www.php.net/intval

    بالنسبة لـ addslashes فإنها تقوم بإضافة [ شرطة ] مائلة قبل الاشارات الغريبة في المتغير، مثل علامات التنصيص ' و " .. والهدف عادة منع اضافة او تغيير شيء في استعلامات SQL التي يتم تنفيذها عن طريق الكود البرمجي خلال صفحة PHP ..

    مثال:
    كود PHP:
    echo "اهلاً 'بكم جميعاً'"
    سيتم طباعة : اهلاً 'بكم جميعاً'
    بصورة طبيعية .. لكن ، لو قمنا بتنفيذ الكود التالي:
    كود PHP:
    echo addslashes("اهلاً 'بكم جميعاً'"); 
    فإنه سيتم طباعة:
    اهلاً \' بكم جميعاً \'

    للمزيد : http://www.php.net/addslashes

    والدالة العكسية لها هي stripslashes كما ذكرت في ردي السابق ، يمكن من خلالها حذف تلك " الشرطات " المائلة .. وذلك عند استخراج النتائج من القاعدة بعد ادخالها ..
    كود PHP:
    echo stripslashes("اهلاً \'بكم جميعا\'"); 
    لاحظ أنه سيتم طباعتها دون الشرطات المائلة ..
    ملاحظة : للتأكد من انها دالة عكسية لها ، يمكنك تنفيذ الكود التالي:
    كود PHP:
    echo stripslashes(addslashes("اهلاً 'بكم جميعاً'")); 
    مع ملاحظة أنه سيتم طباعة الجملة كما هي .. لانه تم تنفيذ دالة اضافة الشرطات addslashes ثم تم تنفيذ الدالة العكسية لها وحذف الشرطات المائلة stripslashes ..

    للمزيد عن stripslashes : http://www.php.net/stripslashes

    مع العلم بأن هناك دوال احرى تقوم بنفس العمل ونفس الغايات ، ومنها mysql_real_escape_string التي تعمل عمل مشابه لـ addslashes لكنها مخصصة لاستعلامات MySQL ...

    اذا واجهت مشاكل في هذه الدوال مع قواعد بيانات Access او MSSQL .. فإني أود أن أذكر هذه الدالة التي ذكرت في php.net والتي قد تحل المشكلة .. [ للفائدة ] :
    كود PHP:
    function addslashes_mssql($str){
       if (
    is_array($str)) {
           foreach(
    $str AS $id => $value) {
               
    $str[$id] = addslashes_mssql($value);
           }
       } else {
           
    $str str_replace("'""''"$str);    
       }
       
       return 
    $str;
    }

    function 
    stripslashes_mssql($str){
       if (
    is_array($str)) {
           foreach(
    $str AS $id => $value) {
               
    $str[$id] = stripslashes_mssql($value);
           }
       } else {
           
    $str str_replace("''""'"$str);    
       }

       return 
    $str;

    أعتذر عن التقصير في الشرح .. وأنتظر قراءتك للرد عزيزي أصيل2005 .. وأي استفسار اخوانك في سوالف جاهزين كلنا ان شاء الله تعالى ..

    تحياتي، sBForum





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

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


    الله يجزيك ألف خير على التفصيل وضحت الصورة .






  8. #8


    واياك .. اي استفسار احنا جاهزين ..

    حاول تطبق الافكار كلها عشان توضح الفكرة اكثر في ذهنك

    تحياتي، sBForum





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  9. #9


    طيب سوأل آخر ..

    كود PHP:
    $title addslashes($_POST['title']); 
    هنا ياخذ المدخلات من input في صفحة htm .. هل كافي استخدم addslashes ولا لازم استخدم
    htmlspecialchars لاحتمال ارسال اكواد html ؟؟


    سوأل آخر :

    كيف استخدم الكود الي بالاسفل داخل ملف php ؟؟ :looking:

    كود:
    <a href='javascript:void(window.open('show.php?id=$id','1','width=550,height=250,toolbar=no,statusbar=no,left=250,top=100'))'>$title</a>







  10. #10


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

    بالنسبة لأي مدخل عن طريق صفحة خارجية ، وحسب مثالك لو كان هناك فورم ترسل حقل باسم title .. عليك عزيزي باستخدام الدالتين .. لكن ، في العادة يتم استخدام addslashes عند ادخال البيانات ، وبما أن كود HTML لن يؤثر على قاعدة البيانات فإنه يتم تنفيذ htmlspecialchars عند استخراج النتائج من القاعدة وليس عند ادخالها ..

    أي أن الكود سيبقى هكذا :
    كود PHP:
    $title addslashes($_POST['title']); 
    وعند الاستخراج ، لنفرض أن $row هي المصفوفة التي تحتوي على النتائج من قاعدة البيانات ، وان الحقل باسم title في القاعدة .. فإنك اذا أردت طباعة هذا الحقل تقوم بتنفيذ التالي :
    كود PHP:
    echo htmlspecialchars(stripslashes($row["title"])); 
    هذا حسب هدف الموضوع الأصلي الذي قمت بالاستفسار حوله ..

    ...................................................................................

    بالنسبة للكود الثاني ، لطباعته في صفحة PHP ببساطة :
    كود PHP:
    echo "<a href=\"javascript:void(window.open('show.php?id=$id','1','width=550,height=250,toolbar=no,statusbar=no,left=250,top=100'))\">"$title ."</a>"
    هذه إحدى الطرق ، وطبعاً كل شخص يمكنه طباعته بالطريقة التي يريد .....

    أتمنى أن أكون قد أفدتك ولو بشيء بسيط

    تحياتي، sBForum





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074



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

    كل شي شغال ميه الميه ^_^






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


    شكرا لكم جميعا كذا اكتمل الموضوع .






  13. #13


    الحمدلله العفو وفقكم الله إلى ما يحب ويرضى ..

    وأي شي اخوانكم في سوالف في خدمتكم

    تحياتي، sBForum





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  14. #14


    السلام عليكم

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

    لدي سؤال أخي الحبيب sBForum :


    عند النظر في جميع قوالب "تمبلتات" المنتديات vb نجدها مخزنة بشكل عادي وطبيعي يعني كلها أكواد html طبيعية وسليمة بدون وجود السلاش المائلة \ .......... حتى قيم المتغيرات
    أيضاً عند عرضها تظهر بشكل طبيعي ..
    اذن أين المشكلة أو متى نستخدم الدالة

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

    وشكرا






  15. #15


    غالبأ أنا فهمت متى نستخدم addslashes و intval
    في صفحة التسجيل أو البحث أو أي صفحات فيها فورم بمعنى أصح يتم فيه ادخال قيم للحصول على نتائج..

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










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

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

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