صفحة 2 من 3 الأولىالأولى 123 الأخيرةالأخيرة
النتائج 16 إلى 30 من 41

الموضوع: [ داله ] دالة حماية النصوص strip_tags() .

  1. #16
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


    اولا جزاك الله خيرااااااااا اخي الكريم صاحب الموضوع

    طيب ما هي احسن داله للحمايه وكيفيه استخدمه

    جزاكم الله خيراااااااااا اخواني





    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  2. #17
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431


    هذه الدالة تستخدم للحماية من ثغرات XXS

    لا تكفي هذه الدالة لحماية المدخلات التي نريد ادراجها في قاعدة البيانات. يجب عليك استخدام mysql_real_escape_string لمعالجة البيانات قبل إدراجها في قاعدة البيانات. وإلا أصبح الكود الذي تستخدمه يحوي ثغرات SQL Injection

    هذا خطأ فادح لاحظته في تطبيقاتك..
    صحيح إستخدمت هذه الداله بكثره مؤخراً ... شكراً لك.


    تهنا في قضية حماية المدخلات وما عدت عارف ماذا نستخدم للبوست
    الجيت سهل أمره
    ولكن البوست هو المشكلة الآن
    كثرة المنع تخليك في النهاية تخرب المشاركة اللي كاتبها الزائر
    ياهلا اخوي , على ماأظن انه كل شئ وله حماية , إدخال نص موضوع للقاعده له حمايه تختلف عن إدخال رقم الهاتف والبريد مثلاً ... او إدخل وصف او الخ ...


    اولا جزاك الله خيرااااااااا اخي الكريم صاحب الموضوع
    طيب ما هي احسن داله للحمايه وكيفيه استخدمه
    جزاكم الله خيراااااااااا اخواني
    مثل ماقلت بالأعلى , كل شئ له شئ يختلف , لديك strip_tags او addslashes او mysql_real_escape_string ... هذا مااذكره حالياً .






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


    صحيح إستخدمت هذه الداله بكثره مؤخراً ... شكراً لك.



    ياهلا اخوي , على ماأظن انه كل شئ وله حماية , إدخال نص موضوع للقاعده له حمايه تختلف عن إدخال رقم الهاتف والبريد مثلاً ... او إدخل وصف او الخ ...



    مثل ماقلت بالأعلى , كل شئ له شئ يختلف , لديك strip_tags او addslashes او mysql_real_escape_string ... هذا مااذكره حالياً .

    جزاك الله خيرااااااااااا اخي الكريم
    طيب ممكن لو ممكن يعني تعمل داله للحمايه من كل الاخطار انا كنت عامل داله فيها كل الدوال ديه

    strip_tags او addslashes او mysql_real_escape_string

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


    فانا غيرته لكده

    كود PHP:
    function text_safe($str)
    {
    return 
    addslashesstrip_tags(trim($str)));

    فهل تنفع هذه الداله للحمايه





    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  4. #19
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    الأخ محمدهلال
    أنا شايف انك في دالتك المذكورة بتجمع جميع دوال الحماية في دالة واحدة ظنا منك انه أفضل للحماية

    عندك اهم شيء في الحماية هو:
    1- حماية المدخلات
    وهي حماية اي شيء يتم ادخاله الى قاعدة البيانات او وضعه في استعلام
    ويتم كالتالي:
    كود PHP:
    $var addslashes(trim($_POST['var'])); 
    في حال كان المتغير نصي
    اما في حال كنت تتوقع ان يكون المتغير رقمي، كرقم مقال او قسم مثلا، فيكفي تطبيق دالة واحدة كالتالي:
    كود PHP:
    $var intval($_POST['var']); 
    2- حماية المخرجات
    مايقلقك هنا في المخرجات ان يتم طباعة كود جافاسكريبت يحتوي على اكواد خبيثة
    ولتعطيل اي اكواد جافاسكريبت او هتمل في المخرجات يكفي تمريرها في الدالة htmlspecialchars كالتالي:
    كود PHP:
    echo htmlspecialchars($var); 
    طبعا ماسبق هو رأيي الشخصي ومن خلال تجاربي الشخصية
    ولا اجزم بانها الطرق الوحيدة ولكن اعتبرها آمنة بما فيه الكفاية





    __________________
    مدونتي

  5. #20
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


    الأخ محمدهلال
    أنا شايف انك في دالتك المذكورة بتجمع جميع دوال الحماية في دالة واحدة ظنا منك انه أفضل للحماية

    عندك اهم شيء في الحماية هو:
    1- حماية المدخلات
    وهي حماية اي شيء يتم ادخاله الى قاعدة البيانات او وضعه في استعلام
    ويتم كالتالي:
    كود PHP:
    $var addslashes(trim($_POST['var'])); 
    في حال كان المتغير نصي
    اما في حال كنت تتوقع ان يكون المتغير رقمي، كرقم مقال او قسم مثلا، فيكفي تطبيق دالة واحدة كالتالي:
    كود PHP:
    $var intval($_POST['var']); 
    2- حماية المخرجات
    مايقلقك هنا في المخرجات ان يتم طباعة كود جافاسكريبت يحتوي على اكواد خبيثة
    ولتعطيل اي اكواد جافاسكريبت او هتمل في المخرجات يكفي تمريرها في الدالة htmlspecialchars كالتالي:
    كود PHP:
    echo htmlspecialchars($var); 
    طبعا ماسبق هو رأيي الشخصي ومن خلال تجاربي الشخصية
    ولا اجزم بانها الطرق الوحيدة ولكن اعتبرها آمنة بما فيه الكفاية

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





    التعديل الأخير تم بواسطة محمدهلال ; 01-11-2008 الساعة 06:54 PM
    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  6. #21
    عضو جديد
    تاريخ التسجيل
    Jan 2008
    المشاركات
    16


    كود PHP:
    function xss_clean($val) {
       
    // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed
       // this prevents some character re-spacing such as <java\0script>
       // note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs
       
    $val preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/'''$val);

       
    // straight replacements, the user should never need these since they're normal characters
       // this prevents like <IMG SRC=&#X40&#X61&#X76&#X61&#X73&#X63&#X72&#X69&#X70&#X74&#X3A&#X61&#X6C&#X65&#X72&#X74&#X28&#X27&#X58&#X53&#X53&#X27&#X29>
       
    $search 'abcdefghijklmnopqrstuvwxyz';
       
    $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
       
    $search .= '1234567890!@#$%^&*()';
       
    $search .= '~`";:?+/={}[]-_|\'\\';
       for (
    $i 0$i strlen($search); $i++) {
          
    // ;? matches the ;, which is optional
          // 0{0,7} matches any padded zeros, which are optional and go up to 8 chars

          // &#x0040 @ search for the hex values
          
    $val preg_replace('/(&#[xX]0{0,8}'.dechex(ord($search[$i])).';?)/i'$search[$i], $val); // with a ;
          // &#00064 @ 0{0,7} matches '0' zero to seven times
          
    $val preg_replace('/(&#0{0,8}'.ord($search[$i]).';?)/'$search[$i], $val); // with a ;
       
    }

       
    // now the only remaining whitespace attacks are \t, \n, and \r
       
    $ra1 = Array('javascript''vbscript''expression''applet''meta''xml''blink''link''style''script''embed''object''iframe''frame''frameset''ilayer''layer''bgsound''title''base');
       
    $ra2 = Array('onabort''onactivate''onafterprint''onafterupdate''onbeforeactivate''onbeforecopy''onbeforecut''onbeforedeactivate''onbeforeeditfocus''onbeforepaste''onbeforeprint''onbeforeunload''onbeforeupdate''onblur''onbounce''oncellchange''onchange''onclick''oncontextmenu''oncontrolselect''oncopy''oncut''ondataavailable''ondatasetchanged''ondatasetcomplete''ondblclick''ondeactivate''ondrag''ondragend''ondragenter''ondragleave''ondragover''ondragstart''ondrop''onerror''onerrorupdate''onfilterchange''onfinish''onfocus''onfocusin''onfocusout''onhelp''onkeydown''onkeypress''onkeyup''onlayoutcomplete''onload''onlosecapture''onmousedown''onmouseenter''onmouseleave''onmousemove''onmouseout''onmouseover''onmouseup''onmousewheel''onmove''onmoveend''onmovestart''onpaste''onpropertychange''onreadystatechange''onreset''onresize''onresizeend''onresizestart''onrowenter''onrowexit''onrowsdelete''onrowsinserted''onscroll''onselect''onselectionchange''onselectstart''onstart''onstop''onsubmit''onunload');
       
    $ra array_merge($ra1$ra2);

       
    $found true// keep replacing as long as the previous round replaced something
       
    while ($found == true) {
          
    $val_before $val;
          for (
    $i 0$i sizeof($ra); $i++) {
             
    $pattern '/';
             for (
    $j 0$j strlen($ra[$i]); $j++) {
                if (
    $j 0) {
                   
    $pattern .= '(';
                   
    $pattern .= '(&#[xX]0{0,8}([9ab]);)';
                   
    $pattern .= '|';
                   
    $pattern .= '|(&#0{0,8}([9|10|13]);)';
                   
    $pattern .= ')*';
                }
                
    $pattern .= $ra[$i][$j];
             }
             
    $pattern .= '/i';
             
    $replacement substr($ra[$i], 02).'<x>'.substr($ra[$i], 2); // add in <> to nerf the tag
             
    $val preg_replace($pattern$replacement$val); // filter out the hex tags
             
    if ($val_before == $val) {
                
    // no replacements were made, so exit the loop
                
    $found false;
             }
          }
       }
       return 
    $val;

    تقبلو مروري






  7. #22
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    731


    1- حماية المدخلات
    وهي حماية اي شيء يتم ادخاله الى قاعدة البيانات او وضعه في استعلام
    ويتم كالتالي:
    كود PHP:
    $var addslashes(trim($_POST['var'])); 
    في حال كان المتغير نصي
    أخوي فكرة هالخطأ الشائع يقع فيه الكثيرين رغم انه اشبع حديثاً خلال الثلاث سنوات الماضية.

    اذا اردت استخدام دالة addslashes لابد من التحقق من قيمة الquote magic وإلا تعارضت الدالة مع الخاصية, وعطل كل منهما الآخر.. ونفذ المخترق بجلده

    والأفضل والآمن منها هي دالة mysql_real_escape_string لانه دالة addslashes بالإمكان تجاوزها عند إستخدام بعض محارف الترميز والكل يجمع أن mysql_real_escape_string هي الأفضل حالياً





    __________________
    Saudi Wanderer
    My Blog : SWanderer

  8. #23
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


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

    اذا اردت استخدام دالة addslashes لابد من التحقق من قيمة الquote magic وإلا تعارضت الدالة مع الخاصية, وعطل كل منهما الآخر.. ونفذ المخترق بجلده

    والأفضل والآمن منها هي دالة mysql_real_escape_string لانه دالة addslashes بالإمكان تجاوزها عند إستخدام بعض محارف الترميز والكل يجمع أن mysql_real_escape_string هي الأفضل حالياً
    صحيح كلامك اخي سعودي وشكرا على المداخلة المفيدة

    ولكن لا ينصح بالاعتماد على magic quotes لاسباب منها، 1- تأثيرها على سرعة الأداء 2-وعدم الحاجة اليها في جميع المدخلات، 3- أيضاً اصدار PHP السادس قد استغنى عن هذه الخاصية





    __________________
    مدونتي

  9. #24
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    731


    صحيح كلامك اخي سعودي وشكرا على المداخلة المفيدة

    ولكن لا ينصح بالاعتماد على magic quotes لاسباب منها، 1- تأثيرها على سرعة الأداء 2-وعدم الحاجة اليها في جميع المدخلات، 3- أيضاً اصدار PHP السادس قد استغنى عن هذه الخاصية
    انت كمبرمج مالك يد في الموضوع, هذا من اعدادات السيرفر. ولكن يجب عليك قراءة القيمة المتوفرة في جميع الحالات اذا كنت تريد إستخدام addslashes هذا ما قصدت





    __________________
    Saudi Wanderer
    My Blog : SWanderer

  10. #25
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    انت كمبرمج مالك يد في الموضوع, هذا من اعدادات السيرفر. ولكن يجب عليك قراءة القيمة المتوفرة في جميع الحالات اذا كنت تريد إستخدام addslashes هذا ما قصدت
    اخي سعودي كلامك صحيح 100% ولا يوجد خلاف عليه
    تحياتي لك





    __________________
    مدونتي

  11. #26


    ضع في اعلي الصفحة بعد فتحة ال php
    كود PHP:
    set_magic_quotes_runtime(0); 
    لتعطيل ال magic_quotes لو كان مفتوح علي السيرفر

    ما الفرق بين
    mysql_escape_string
    و
    mysql_real_escape_string

    الجواب
    4.3.0 This function became deprecated, do not use this function. Instead, use mysql_real_escape_string().

    PHP: mysql_escape_string - Manual





    __________________
    السيف أصدق أنباء من الكتب

  12. #27
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2005
    المشاركات
    518


    تعقيبا على رد أخي المجروح هذه دالة استخدمها لعدم تعارض stripslashes مع magic_quotes

    كود PHP:

    function quote_smart($value)
    {   
       
    $value trim($value);
       
      
    // Stripslashes
        
    if (get_magic_quotes_gpc()) {
            
    $value stripslashes($value);
        }
        
    // mysql_real_escape_string to make it safe
           
    $value mysql_real_escape_string($value);
        
        return 
    $value;







    __________________
    اللهم أعز الاسلام و المسلمين

  13. #28
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431


    يعطيكم العافيه على المشاركات الرائعه ...
    الأخ المجروح, على ماأأظن ان القصد ان mysql_real_escape_string أفضل , هذا اللي فهمته والله.






  14. #29
    عضو شرف
    تاريخ التسجيل
    Mar 2003
    المشاركات
    1,899


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

    اذا اردت استخدام دالة addslashes لابد من التحقق من قيمة الquote magic وإلا تعارضت الدالة مع الخاصية, وعطل كل منهما الآخر.. ونفذ المخترق بجلده

    والأفضل والآمن منها هي دالة mysql_real_escape_string لانه دالة addslashes بالإمكان تجاوزها عند إستخدام بعض محارف الترميز والكل يجمع أن mysql_real_escape_string هي الأفضل حالياً
    كلام سليم

    كود PHP:
            if(get_magic_quotes_gpc())
            {
                
    $Name addslashes($Name);
            } 






    __________________
    محلل لنظم المعلومات - ارسل لي رساله خاصه عبر المنتدى | join me on facebook / twitter
    php | flash&flex&air actionscript 2,3 | ajax&javascript | database pro Analyzer

  15. #30


    يعطيكم العافيه على المشاركات الرائعه ...
    الأخ المجروح, على ماأأظن ان القصد ان mysql_real_escape_string أفضل , هذا اللي فهمته والله.
    وجدت هذه mysql_escape_string مستخدمه في ال vb حسب ما اذكر

    عموما لحماية ال get أستخدم intvalue لما هتكون بتجيب رقم الموضوع أو التصنيف إلخ
    ولما هتكون بتجيب نص مثلا do إستخدم selectcase وحدد الشروط
    وأعمل ليها ديفولت بحيث لو ليست من الخيارات اللي حددتها تطلع له صفحة خطأ مثلاً ( أو حسب ما تحب ممكن تحوله علي الرئيسية )

    نادرا ما نجيب من الجيت نص لعمل إستعلام عنه في القاعدة ( دائما ما يكون رقم والنص لتحديد نحن أين مثلا في صفحة المشاركة ولا التصويت ولا ولا ولا )
    ولكن لو كنت هتستخدمها في الجلب إستخدم mysql_real_escape_string

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

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

    فكيف نحمي البيان قبل عرضه للزائر ؟





    __________________
    السيف أصدق أنباء من الكتب





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

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

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