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

موضوع: تابع ob_start در php امنه؟

  1. #1
    عضو انجمن
    تاریخ عضویت
    Jul 2015
    نوشته ها
    147
    تشکر تشکر کرده 
    70
    تشکر تشکر شده 
    92
    تشکر شده در
    76 پست

    پیش فرض تابع ob_start در php امنه؟

    سلام
    من برای استفاده از تابع header به مشکل خوردم و تنها راه حلی که جواب داد استفاده از
    تابع ob_start بود . حالا از نظر امنیتی این تابع چون جلو اجرای خط به خط php رو میگیره و از بافل استفاده میکنه امنتره یا اینکه نه مشکل امنیتی داره؟ من بنظرم امنتر میاد درسته؟

    با تشکر از همکاریتون

  2. # ADS




     

  3. #2
    عضو انجمن
    تاریخ عضویت
    Oct 2015
    نوشته ها
    788
    تشکر تشکر کرده 
    569
    تشکر تشکر شده 
    1,269
    تشکر شده در
    882 پست

    پیش فرض پاسخ : تابع ob_start در php امنه؟

    سلام
    به نظر من اگه یکم بیشتر تو کد هاتون فکر کنید احتمالاً راه منطقی تری برای ارسال header ها قبل از خروجی html به کاربر پیدا میکنید که نیازی به ob_start هم نباشه اما در شرایط خاصی که واقعاً راه حداقل آسونی برای این کار وجود نداره ob_start برای همین ساخته شده.فکر نکنم مشکل امنیتی هم داشته باشه چون حتی تو PHP 7 هم این تابع وجود داره.

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


  5. #3
    عضو انجمن
    تاریخ عضویت
    Jul 2015
    نوشته ها
    147
    تشکر تشکر کرده 
    70
    تشکر تشکر شده 
    92
    تشکر شده در
    76 پست

    پیش فرض پاسخ : تابع ob_start در php امنه؟

    یک کم بیشتر تو نت تحقیق کردم یه جایی یه نکته رو دیدم که پیش بینی هام رو تایید کرد..استفاده از این تابع باعث افزایش امنیته البته برای کسایی که حواس پرتن...نوشته رو میزارم بقیه استفاده کنن

    ه خاطره تلخ هم در مورد رعایت یه مسئله امنیتی بگم براتون, من تو یه پروژه ای برای Session صفحه مدیر از headerاستفاده کرده بودم که اگه سشن درست نبود به صفحه خروج ریدایرکت بشه! کاری که همه می کنند,
    کد PHP:
    if(!isset($_SESSION['secret']))
    {
    header(“location: logout.php”);

    ……….


    (تو پست بعدی یه سری مسائل امنیتی در مورد ورود امنت تر و استفاده همزمان از Session و کوکی هامی نویسم)
    خوب طبق بالا اگه کسی مستقیم وارد صفحه مدیر میشد ولی لاگین نکرده بود صفحه منتقل میشد! بعد دیدم یکی از دوستام ایمیل زده می خنده می گه من بدون لاگین وارد صفحه میشم!!
    بعد که بررسی کردم دیدم فایل کانفیگ با Notepad ویندوز ویرایش شده بود و غیر استاندارد ذخیره شده بود و به اصطلاح دارای BOM شده بود یعنی خروجی HTML یه کارکتر خالی میفرستاد و این یعنی ارسال header !! برای همین header دوم ارسال نمیشد و هر کسی میتونست تو ادمین واسه خودش دور بزنه راه حلش هم ساده هست استفاده از تابع exit(); !
    وقتی ما از تابع headerاستفاده می کنیم یعنی با ادامه کد کاری نداریم پس برنامه رو exit میکنیم که اگه سهوا هیدر ارسال نشد لا اقل دسترس هم نداشته باشند! مثل :
    کد PHP:
    if(!isset($_SESSION['secret']))
    {
    header(“location: logout.php”);

    exit();




    ویرایش توسط vahid13713 : September 5th, 2016 در ساعت 12:36

  6. #4
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : تابع ob_start در php امنه؟

    سلام، کلا با تابع هایی که دارای callback هستند میتوان سو استفاده هایی کرد، با اینکه ob_start هم callback میگیرد اما مشکل تابع های callback دا را برای ساخت بک دور ندارد اما دیده شده بعضی میزبانی ها کل تابع هایی که callback میگیرند را بسته اند که ob_start جز این دسته حساب میشود.

  7. تعداد تشکر ها از T.Toosi به دلیل پست مفید


  8. #5
    کاربر اخراج شده
    تاریخ عضویت
    Sep 2016
    نوشته ها
    8
    تشکر تشکر کرده 
    0
    تشکر تشکر شده 
    7
    تشکر شده در
    6 پست

    پیش فرض پاسخ : تابع ob_start در php امنه؟

    دوست عزیز نحوه استفاده از تابع مهمه وگرنه اگر این تابع امن نبد که در ورژن های بعدی php کلا وجود نداشت.

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

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

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

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

  1. سوال در مورد ob_start
    توسط naghmesra در انجمن PHP-MySQL
    پاسخ ها: 6
    آخرين نوشته: July 9th, 2017, 09:09

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

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