نمایش نتایج: از شماره 1 تا 5 , از مجموع 5

موضوع: امنيت در برنامه نويسي php

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #3
    عضو دائم Rezash آواتار ها
    تاریخ عضویت
    Feb 2010
    محل سکونت
    مشهد
    نوشته ها
    1,923
    تشکر تشکر کرده 
    889
    تشکر تشکر شده 
    2,385
    تشکر شده در
    1,535 پست

    پیش فرض پاسخ : امنيت در برنامه نويسي php

    سلام
    بالاخره فرصتي بشد براي ادامه آموزش !
    در مورد حملا xss صحبت كرديم اما راه حلي ارائه نشد !
    بنابراين در ابتدا به مقابله با اين حملات ميپردازيم
    براي نمايش پيغام ها به جاي اينكه مستقيما از
    کد PHP:
        echo  $_GET['msg']; 
    استفاده كنيم ميتونيم ابتدا رشته رو خنثي سازي كنيم ! يعني رشته رو از وجود تگ هاي html و جاوا اسكريپت و... خنثي كنيم.
    به عنوان نمونه با تابع strip_tags ميتونيم تمام تگهاي js و html رو حذف كنيم.
    ممكن هست بخواهيم همه تگها (براي نمونه : ) جز تگ <br> حذف بشند كه در اينصورت در پاراكتر دوم تابع strip tags از br (و ليست ساير تگ ها مجاز انتخابي ) استفاده ميكنم
    خوشبختانه منوال php به قدري غني هست كه به وضوح اين توابع با مثال هايي توضيح داده شدند و جاي مثال اضافي نيست !
    PHP: strip_tags - Manual
    Example #1 strip_tags() example
    کد PHP:
    <?php
    $text 
    '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
    echo 
    strip_tags($text);
    echo 
    "\n";

    // Allow <p> and <a>
    echo strip_tags($text'<p><a>');
    ?>
    The above example will output:
    Test paragraph. Other text
    <p>Test paragraph.</p> <a href="#fragment">Other text</a>
    تابع htmlspecialchars :
    اين تابع هم تابع مفيدي براي خنثي كردن كدهاي html هست.در واقع كدهاي html در اين تابع حذف نميشند بلكه با كاركترهايي مناسب جايگزين و قابل نمايش (به جاي اجرا)‌ميشند.
    PHP: htmlspecialchars - Manual
    * اين توابع رو بعدا به طور جامع در يك پست توضيح ميدم و در نهايت با كمك مجموعه اين توابع تابعي ميسازيم كه بتونه تمام متغير ها و آرايه هاي ورودي رو براي ما امن كنه و تاحدودي زيادي جلوي حملات xss و sql injection رو به صورت خودكار بگيريم !
    اما ! اين روش از نظر من كلا اشتباست.
    دليلي وجود نداره كه پيغام مورد نمايش رو از طريق post يا get ارسال كنيم تا چنين مشكلاتي پيش بياد.
    فرض كنيد :
    کد PHP:
    <?php
    $msg 
    = array(
    'login'         =>    'Please Login',
    'faield'        =>    '<font color=red><b>Login failed !</b></font>',
    'success'        =>    '<font color=green><b>Login was successfull !</b></font>',
    );
    if(isset(
    $_GET['msg']))
        if(isset(
    $msg[$_GET['msg']]))
            die(
    $msg[$_GET['msg']]);
        else
            die(
    'invalid msg !');
    ?>
    فكر كنم واضح باشه ، اما بهرحال باز در فرصتي مناسب توضيحات بيشتري ميدم.
    بک آپ بگیرید قبل از آنکه پشیمان شوید!
    تشخیص سیستم مدیریت محتوای سایت - سایت شخصی

  2. تعداد تشکر ها از Rezash به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. همكار پروژه اي كدنويسي وبسايت
    توسط GoldinHost.IR در انجمن به دنبال کارمند هستم
    پاسخ ها: 0
    آخرين نوشته: May 19th, 2017, 09:37
  2. تغييرات در سايت كه با دات نت برنامه نويسي شده
    توسط mohsenshayan در انجمن درخواست خدمات برنامه نویسی
    پاسخ ها: 0
    آخرين نوشته: April 26th, 2015, 03:12
  3. اديت قالب (يه كد نويسي حرفه اي لازم داريم)
    توسط vahidxiii در انجمن درخواست خدمات برنامه نویسی
    پاسخ ها: 1
    آخرين نوشته: June 10th, 2014, 12:58
  4. طراحي و برنامه نويسي سايت پيشبيني فوتبال
    توسط Mass70 در انجمن درخواست خدمات برنامه نویسی
    پاسخ ها: 7
    آخرين نوشته: April 20th, 2013, 16:37
  5. پاسخ ها: 5
    آخرين نوشته: September 17th, 2009, 14:19

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •