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

موضوع: آموزش ساخت سيستم كاربري - ورود/عضويت

Hybrid View

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

    پیش فرض پاسخ : آموزش ساخت سيستم كاربري - ورود/عضويت

    در مورد SQL INJECTION :
    در آخرين فايلي كه براي دانلود گذاشتم :
    فايل config.php رو ببينيد :
    کد PHP:
    function safe$value ){
    $value         trim$value );
    $value         mysql_real_escape_string$value );
    $value        htmlspecialchars($value);
    $value        strip_tags($value);
    $value         str_replace(array("<",">","'","ی","&amp;","ۜ"),array("&lt;","&gt;","'","ي","&","ي"),$value);
    return 
    $value;
    }
    function 
    autosafe(&$value,$key){
    $value safe($value);
    return 
    $value;
    }
    array_walk($_POST,'autosafe');
    array_walk($_GET,'autosafe');
    array_walk($_COOKIE,'autosafe');
    array_walk($_SESSION,'autosafe'); 
    تابع safe:
    ابتدا مقدار ورودي رو trim مي كنيم يعني فضاهاي خالي اول و آخرش رو حذف مي كنيم
    mysql_real_escape_string : يك تابع فوق العاده سودمند براي حذف كاراكتر هاي ناخواسته و آماده سازي رشته ورودي براي استفاده در يك كوئري به صورت سالم . مثلا كاراكترهاي \x00, \n, \r, \, ', " and \x1a فيلتر ميشوند.
    PHP: mysql_real_escape_string - Manual
    htmlspecialchars
    تبديل كاراكترهاي html :
    مثال :

    * '&' (ampersand) becomes '&amp;'
    * '"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.
    * ''' (single quote) becomes ''' only when ENT_QUOTES is set.
    * '<' (less than) becomes '&lt;'
    * '>' (greater than) becomes '&gt;'
    PHP: htmlspecialchars - Manual
    strip_tags :
    حذف تگ ها ، مثلا تگ اسكريپت و ...
    PHP: strip_tags - Manual
    تابع autosafe :
    تابعي دست نويس براي اجراي خودكار تابع safe روي متغير هاي ورودي . اگر از نحوه كاركرد اين تابع و تابع بعدي يعني array_walk اطلاع نداريد توصيه ميكنم "آرايه ها در php" رو كه قبلا در همين انجمن نوشتم مطالعه كنيد.
    -
    جلوگيري و مقابله با جعل سشن :
    کد PHP:
    $client =  md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'].$_SERVER['SERVER_NAME']);
            
    $_SESSION['client'] = $client
    يك راه كاملا ساده !
    در كد بالا من تركيبي از آي پي كاربر ، مشخصات مرورگر كاربر و آدرس سايت رو در يك رشته تركيب و md5 كردم و داخل يك سشن ريختم
    حالا در صفحات لوگين بايد چك كنم :
    کد PHP:
    $client =  md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'].$_SERVER['SERVER_NAME']);
    if(
    $client != $_SESSION['client'])
        die(
    "Dear User ! Your Login session expired,please re login"); 
    با اينكار حتي اگه سشن يك يوزر جعل و د.زديده بشه باز هم هويتش جعل نميشه.
    سعي كردم خلاصه بگم و بيشتر توابع رو php.ini ارجاع مي دم به دو دليل : 1. شلوغ نشدن غير ضروري تاپيك 2. درك سايت فوق العاده مفيد php.net
    منتظر ادامه آموزش ها باشيد
    بک آپ بگیرید قبل از آنکه پشیمان شوید!
    تشخیص سیستم مدیریت محتوای سایت - سایت شخصی

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


  3. #2
    عضو انجمن
    تاریخ عضویت
    Jul 2012
    نوشته ها
    243
    تشکر تشکر کرده 
    88
    تشکر تشکر شده 
    478
    تشکر شده در
    173 پست

    پیش فرض پاسخ : آموزش ساخت سيستم كاربري - ورود/عضويت

    نقل قول نوشته اصلی توسط Rezash نمایش پست ها
    در مورد SQL INJECTION :
    در آخرين فايلي كه براي دانلود گذاشتم :
    فايل config.php رو ببينيد :
    کد PHP:
    function safe$value ){
    $value         trim$value );
    $value         mysql_real_escape_string$value );
    $value        htmlspecialchars($value);
    $value        strip_tags($value);
    $value         str_replace(array("<",">","'","ی","&amp;","ۜ"),array("&lt;","&gt;","'","ي","&","ي"),$value);
    return 
    $value;
    }
    function 
    autosafe(&$value,$key){
    $value safe($value);
    return 
    $value;
    }
    array_walk($_POST,'autosafe');
    array_walk($_GET,'autosafe');
    array_walk($_COOKIE,'autosafe');
    array_walk($_SESSION,'autosafe'); 
    تابع safe:
    ابتدا مقدار ورودي رو trim مي كنيم يعني فضاهاي خالي اول و آخرش رو حذف مي كنيم
    mysql_real_escape_string : يك تابع فوق العاده سودمند براي حذف كاراكتر هاي ناخواسته و آماده سازي رشته ورودي براي استفاده در يك كوئري به صورت سالم . مثلا كاراكترهاي \x00, \n, \r, \, ', " and \x1a فيلتر ميشوند.
    PHP: mysql_real_escape_string - Manual
    htmlspecialchars
    تبديل كاراكترهاي html :
    مثال :

    * '&' (ampersand) becomes '&amp;'
    * '"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.
    * ''' (single quote) becomes ''' only when ENT_QUOTES is set.
    * '<' (less than) becomes '&lt;'
    * '>' (greater than) becomes '&gt;'
    PHP: htmlspecialchars - Manual
    strip_tags :
    حذف تگ ها ، مثلا تگ اسكريپت و ...
    PHP: strip_tags - Manual
    تابع autosafe :
    تابعي دست نويس براي اجراي خودكار تابع safe روي متغير هاي ورودي . اگر از نحوه كاركرد اين تابع و تابع بعدي يعني array_walk اطلاع نداريد توصيه ميكنم "آرايه ها در php" رو كه قبلا در همين انجمن نوشتم مطالعه كنيد.
    -
    جلوگيري و مقابله با جعل سشن :
    کد PHP:
    $client =  md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'].$_SERVER['SERVER_NAME']);
            
    $_SESSION['client'] = $client
    يك راه كاملا ساده !
    در كد بالا من تركيبي از آي پي كاربر ، مشخصات مرورگر كاربر و آدرس سايت رو در يك رشته تركيب و md5 كردم و داخل يك سشن ريختم
    حالا در صفحات لوگين بايد چك كنم :
    کد PHP:
    $client =  md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'].$_SERVER['SERVER_NAME']);
    if(
    $client != $_SESSION['client'])
        die(
    "Dear User ! Your Login session expired,please re login"); 
    با اينكار حتي اگه سشن يك يوزر جعل و د.زديده بشه باز هم هويتش جعل نميشه.
    سعي كردم خلاصه بگم و بيشتر توابع رو php.ini ارجاع مي دم به دو دليل : 1. شلوغ نشدن غير ضروري تاپيك 2. درك سايت فوق العاده مفيد php.net
    منتظر ادامه آموزش ها باشيد

    سلام دوست عزیز

    لطفا هشدار سایت php رو برای تابع mysql_real_escape_string جدی بگیرید

    Caution Security: the default character set

    The character set must be set either at the server level, or with the API function mysql_set_charset() for it to affect mysql_real_escape_string(). See the concepts section on character sets for more information.
    قبل از ست کردن charset لطفا ازین تابع استفاده نکنید

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

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

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

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

  1. پاسخ ها: 2
    آخرين نوشته: March 11th, 2013, 12:50
  2. پاسخ ها: 0
    آخرين نوشته: May 16th, 2011, 01:12
  3. آموزش ساخت يك سيستم وبلاگ دهي
    توسط Rezash در انجمن PHP-MySQL
    پاسخ ها: 12
    آخرين نوشته: December 17th, 2010, 18:09
  4. معرفی سيستم مديريت آموزشگاه اتود + نسخه نمايشی
    توسط amiri113 در انجمن مباحث دیگر
    پاسخ ها: 0
    آخرين نوشته: February 1st, 2010, 18:08

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

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