صفحة 1 من 3 123 الأخيرةالأخيرة
النتائج 1 إلى 15 من 41

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

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

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



    بسـم الله الرحـمن الرحيـم
    السلام عليكم ورحمة الله وبركاته
    ...

    الجميع يطبح للحمايه في برمجياتهم ... ومن اهل الأمور هي حماية السكربت من الأكواد الخبيثه .. اليوم سنشرح الداله strip_tags للحمايه.
    هذه الداله رائعه جداً جداً , فهي تمكنك من السماح بوسوم ومنع غيرها ! .

    أولا درسنا $_POST سابقاً ... ولنفرض اننا لدينا سكربت أخبار وفيه $_POST لإحضار الخبر ثم أدخاله لقاعدة البيانات ...
    ماذا لو كان العضو الذي وضع الخبر وضع أكواداً خبيثه !
    ستظهر هذه الأكواد لكل شحص يرى الخبر ... إلا ان قمت بحماية الـ $_POST بأحد الدوال ...

    طريقة الإستعمال العادي للداله strip_Tags() :
    كود PHP:
    <?php  
    $text 
    strip_tags($_POST['text']);  
    ?>
    هكذا ستقوم بحماية المدخلات ... طبعاً يوجد طرق أخرى لكن هذه الطريقة قد تفي بالغرض ...
    لكن لنفرض انك تريد للكاتب الي يكتب الخبر ان يتمكن من تنسيق الخبر بواسطة HTML او BBCodes ... مثلاً يستطيع تعرض النص وتلوينه وهكذا ... هل ستمنعه بسبب خوفك من الإختراق ؟
    طبعاً لا ... هكذا نقوم بوضع الـوسوم المسموح بها :

    كود PHP:
    <? 
    $text 
    strip_tags($_POST['text'],<b>,<font>,<h1>,<h2>,<h3>,<img>,<a>,<table>); 
    ?>
    لتحميل مثال بسيط للداله strip_tags اضغط بالأسفل
    Download StripTags Function Example RAR File
    أو
    تحميل مثال على الداله strip_tags لحماية النصوص ملف zip .


    وشكراً.








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


    اخي ff5006 شؤال هل انت محترف function





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

  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    509


    ممتاز اخوي عمل مبارك ...

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

    الى الامام اخي .





    __________________
    EbNCaNa اخوكم ابن قانا

    [درس] قائمة بريدية بأسهل الطرق بواسطة PHP

    [توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟

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


    اخي ff5006 شؤال هل انت محترف function
    لاوالله ...


    ممتاز اخوي عمل مبارك ...

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

    الى الامام اخي .
    ياهلا اخوي ... بعض الوسوم
    كود PHP:
    <iframe>,<paintext>,<script>,<object>,<applet>,<embed>, 
    هذه بعض الوسم التي جاءت على بالي ... اللي يعرف غيرها ياليت يعلمنا علشان نجمعها كلها بمكان واحد



    وشكراً.






  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Oct 2003
    المشاركات
    549


    مشكور على الشرح الرائع اخوي فهد

    بالنسبة للحماية من الاكواد الخبيثة في الـHTML

    فأغلب وسوم HTML خطرة مالم تكن كلها

    لذلك يتوجب تمريرها لدالة تقوم بتنضيفها من XSS

    والسبب ان اغلبها خطرة انه فيها امكانية onclick وهذي مثلها مثل وسم script





    __________________
    صالح المطرفي (Mr.Saphpـ)
    مدونتــــــي
    الصندوق الماسي الخامس
    قوالب WordPress
    تم بحمد الله الإنتهاء من سكربت الدروس العربي 4.0
    http://www.saphplesson.org

  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    509


    مشكور اخوي على الفائدة وبتمنى من يعرف اكثر وسوم خطرة يحكيلنا عنها .





    __________________
    EbNCaNa اخوكم ابن قانا

    [درس] قائمة بريدية بأسهل الطرق بواسطة PHP

    [توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟

  7. #7
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    97


    كود PHP:

    function strip_tags_attributes($sSource$aAllowedTags = array(), $aDisabledAttributes = array('onabort''onactivate''onafterprint''onafterupdate''onbeforeactivate''onbeforecopy''onbeforecut''onbeforedeactivate''onbeforeeditfocus''onbeforepaste''onbeforeprint''onbeforeunload''onbeforeupdate''onblur''onbounce''oncellchange''onchange''onclick''oncontextmenu''oncontrolselect''oncopy''oncut''ondataavaible''ondatasetchanged''ondatasetcomplete''ondblclick''ondeactivate''ondrag''ondragdrop''ondragend''ondragenter''ondragleave''ondragover''ondragstart''ondrop''onerror''onerrorupdate''onfilterupdate''onfinish''onfocus''onfocusin''onfocusout''onhelp''onkeydown''onkeypress''onkeyup''onlayoutcomplete''onload''onlosecapture''onmousedown''onmouseenter''onmouseleave''onmousemove''onmoveout''onmouseover''onmouseup''onmousewheel''onmove''onmoveend''onmovestart''onpaste''onpropertychange''onreadystatechange''onreset''onresize''onresizeend''onresizestart''onrowexit''onrowsdelete''onrowsinserted''onscroll''onselect''onselectionchange''onselectstart''onstart''onstop''onsubmit''onunload'))
        {
            if (empty(
    $aDisabledAttributes)) return strip_tags($sSourceimplode(''$aAllowedTags));

            return 
    preg_replace('/\s(' implode('|'$aDisabledAttributes) . ').*?([\s\>])/''\\2'preg_replace('/<(.*?)>/ie'"'<' . preg_replace(array('/javascript:[^\"\']*/i', '/(" implode('|'$aDisabledAttributes) . ")[ \\t\\n]*=[ \\t\\n]*[\"\'][^\"\']*[\"\']/i', '/\s+/'), array('', '', ' '), stripslashes('\\1')) . '>'"strip_tags($sSourceimplode(''$aAllowedTags))) );
        }

    $source="<big onmouseover=alert('Hello!')>Move your mouse here (this work with [ strip_tags_attributes corrected ])</big>";
    $striped_source=strip_tags_attributes($source,array('<big>'));
    echo(
    $striped_source); 






    التعديل الأخير تم بواسطة drabdalla ; 27-08-2008 الساعة 11:58 AM

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


    مشكور على الشرح الرائع اخوي فهد

    بالنسبة للحماية من الاكواد الخبيثة في الـHTML

    فأغلب وسوم HTML خطرة مالم تكن كلها

    لذلك يتوجب تمريرها لدالة تقوم بتنضيفها من XSS

    والسبب ان اغلبها خطرة انه فيها امكانية onclick وهذي مثلها مثل وسم script
    العفو... وصحيح كلامك ثغرات الـ XSS كثيره وقاتله , لكن لو قمنا بتحديد الوسوم المسموح بها وهي <table> , <b> ,<font> .... فلا أعتقد انها تضر ...

    مشكور اخوي على الفائدة وبتمنى من يعرف اكثر وسوم خطرة يحكيلنا عنها .
    العفو ...



    drabdalla
    شكراً على الداله .. : )






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


    اذا اردتم طباعة الوسوم من غير ما تتنفذ فهذه تفي بالغرض
    htmlspecialchars

    كود PHP:
    $r "\"<a href='test'>Test</a>]{}Y&%$#@!~-*/+?><=-_)7& %#{2}";
    $new htmlspecialchars($rENT_QUOTES);
    echo 
    $new;

    // &quot;&lt;a href='test'&gt;Test&lt;/a&gt;]{}Y&amp;%$#@!~-*/+?&gt;&lt;=-_)7&amp; %#{2} 







  10. #10
    عضو سوبر نشيط
    تاريخ التسجيل
    Mar 2008
    المشاركات
    824


    شكرا لكم جميعا






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



  12. لا هنت اخوي ff5006

    ويعطيك العافيه يارب

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

    كود PHP:
    function CleanXSS($str){
        
    // One of the easiest way to do XSS is to use one of the on* attributes, like onclick or onload.
        // With this you can easily execute a script, without the user even having to do something (with onload, etc)
        // or just having to click or hover over something. We just remove them all with
        
    $str preg_replace('#(<[^>]+[\s\r\n\"\'])(on|xmlns)[^>]*>#iU',"$1>",$str);
        
        
    // As you certainly know, can you use javascript: and vbscript: as protocol handlers instead of http:// and others.
        // Something like <a href="javascript:alert('foobar')">lll</a> executes just nicely if a user clicks on it.
        // We of course remove that as well. IE as also the strange behaviour that something like "java script :" is also valid,
        // so we have to check for a whitespace between every character.
        
    $str preg_replace('#([a-z]*)[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*)[\\x00-\x20]*j[\x00-\x20]*a[\x00-\x20]*v[\x00-\x20]*a[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iU','$1=$2nojavascript...',$str);
        
    $str preg_replace('#([a-z]*)[\x00-\x20]*=([\'\"]*)[\x00-\x20]*v[\x00-\x20]*b[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iU','$1=$2novbscript...',$str);
        
        
    // We removed all namespace declarations above, here we remove all elements, which have a prefix, they are not needed in HTML..
        
    $str preg_replace('#</*\w+:\w[^>]*>#i','',$str);
        
        
    // There are quite some elements in HTML, which you definitively don't want in something like user comments.
        // The reason for the while loop is, that stuff like
        // <sc<script>ript>alert('hello')</sc</script>ript>
        // We remove them with:
        
    do {
            
    $oldstr $str;
            
    $str preg_replace('#</*(\?xml|applet|meta|xml|blink|link|style|script|object|iframe|frame|frameset|ilayer|layer|bgsound|title|base)[^>]*>#i',"",$str);
        } while (
    $oldstr != $str);
        
        return 
    $str;


    ويعطيك العافيه يارب

    تحيتي لك





    __________________
    -----------------------------------------------------------
    :: همـ المشاعر ــس :: عبد الله :: للتصميم و التطوير ::
    http://www.mr-sa.com
    -----------------------------------------------------------

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


    عبد الله الزايدي
    الله يعافيك ... ومشكور على الداله , وجاري التجربه ...






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


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

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

    هذا خطأ فادح لاحظته في تطبيقاتك..





    __________________
    Saudi Wanderer
    My Blog : SWanderer

  15. #15


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





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





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

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

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