تبلیغات :
خرید لپ تاپ استوک
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 11

نام تاپيک: encode و decode در php

  1. #1
    داره خودمونی میشه arash_black's Avatar
    تاريخ عضويت
    Jul 2007
    پست ها
    67

    پيش فرض encode و decode در php

    دوستان سلام،

    ميدونيد كه يكي از نكات امنيتي در php استفاده از encode,decode هست كه براي تطبيق اطلاعات با پايگاه داده از اين تكنيك استفاده ميشه ، مي خواستم بدونم كدوم يك از دوستان اطلاعات بيشتري در اين زمينه داره و مي تونه اين تكنيك رو با مثال آموزش بده ؟؟؟

  2. #2
    حـــــرفـه ای neopersia's Avatar
    تاريخ عضويت
    Oct 2006
    پست ها
    3,580

    پيش فرض

    encode و decode برای تطبیق با پایگاه داده ها!؟
    میشه بیشتر توضیح بدی

  3. #3
    حـــــرفـه ای dogtag's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    مرز غربی تهران بزرگ! ایمیل: goodboy.php@gmail.com اسپم ها: 2,200!!! :دی
    پست ها
    2,277

    پيش فرض

    با اجازه ي اساتيد، من يه مختصري مي گم. شايد مفيد باشه.
    ببينيد مثلاً شما يه پسورد رو مي گيري و مي ذاري توي ديتابيس
    خب اگر encode نكني هر كس كه به DB دسترسي داره مي تونه بياد و پسورد رو بخونه
    ولي ميان encode مي كنند كه به دو صورته:
    1- برگشت پذير مثل ------
    2- برگشت نا پذير مثل md5

    كه البته امنيت md5 خيلي بيشتره و مياد هر چي كه بهش مي دي با به الگوريتم خاص تبديل مي كنه به يه كد 32 حرفي مثل اين "HFEUSSIEHFSI4E7HTE87THTJ4E8 U87T"
    و حر وقت كه بخواي ببيتي پسورد وارد شده همين هست يا نه اول md5ش رو مي گيري و با اين مقايسه مي كني

    اون ------ هم قابل برگشته. من اين رو بيشتر براي تبديل كاراكتر هاي بي خود به حروف از اين استفاده مي كنم
    براي كاراكتر هايي مثل : يا در تر از اون كاراكتر 0 (منظورم chr(0) ه نه 0)
    مثلاً "http : // wefwef . con" رو مي كنه "ahhkfkwk+fk043/fko349"

    حالا اين هم يه مثال:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  4. #4
    داره خودمونی میشه arash_black's Avatar
    تاريخ عضويت
    Jul 2007
    پست ها
    67

    پيش فرض

    دوست عزيز از بابت توضيحاتت خيلي ممنونم،
    حالا به نظر تو استفاده از اين روش مي تونه بهترين روش براي تامين امنيت صفحات login باشه ، منظورم اينه كه چون خطرات SQL Enjection وجود داره اين روش مي تونه بهترين روش باشه ؟

  5. #5
    حـــــرفـه ای dogtag's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    مرز غربی تهران بزرگ! ایمیل: goodboy.php@gmail.com اسپم ها: 2,200!!! :دی
    پست ها
    2,277

    پيش فرض

    نه اين جلوي injection رو نمي تونه بگيره
    براي اون بايد از scape (الان دقيقاً جلوم نيست. شك دارم) استفاده كني

  6. #6
    داره خودمونی میشه arash_black's Avatar
    تاريخ عضويت
    Jul 2007
    پست ها
    67

    پيش فرض

    نه اين جلوي injection رو نمي تونه بگيره
    براي اون بايد از scape (الان دقيقاً جلوم نيست. شك دارم) استفاده كني

    فرض كن در يك ديتا بيس username و password كاربران رو به صورت encode يا md5 وارد كرديم ، حالا در صفحه login يك user و pass از كاربر مي گيريم و پس از encode يا md5 كردن اون با پايگاه داده تطبيق ميديم ،‌ در اينصورت اگر كاربر حملات SQL ENJECTION وارد كنه ، دستوراتش به شكل md5 در مياد ، بنابراين از اين حملا ت جلوگيري ميشه ، اگر نظرت خلاف اين هست لطف ميكني بيشتر توضيح بدي ؟

  7. #7
    آخر فروم باز MAXXX's Avatar
    تاريخ عضويت
    May 2006
    پست ها
    1,990

    پيش فرض

    بین شما یه سو تفاهم شده
    عمل اینجکشن کشف پسورد هایه کاربران نیست !!! که با هش شدن پسورد ها ازش جلوگیری بشه
    شما فرض کن پسورد هارو هم هش کردی
    در دیتابیس یه فروشگاه هکری نفوذ میکنه و شماره و پسورد هایه کارت هایه اعتباری رو میدزده ولی چون پسورد یوزر ها هش شده بوده نمیتونه از پسورد و یوزرنیم کاربرا استفاده کنه حالا به نظر شما از حملش جلو گیری شده؟ وقتی که رمز کارت اعتباری رو داره دیگه پسورد و یوزر کاربری میخواد چیکار
    Last edited by MAXXX; 07-04-2008 at 19:35.

  8. #8
    حـــــرفـه ای dogtag's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    مرز غربی تهران بزرگ! ایمیل: goodboy.php@gmail.com اسپم ها: 2,200!!! :دی
    پست ها
    2,277

    پيش فرض

    آرش جان تازه فهميدم چي ميگي
    آره عزيز اگه شما هر چيزي كه از كاربر مي گيري رو encode كني ديگه عملاً SQL Injection انجام نميشه
    ولي ايني كه MAXXX هم ميگه درسته يعني اگر يه جور ديگه وارد بشه مي تونه همه كار بكنه

    ولي من توصيه مي كنم كه انجامش بدي. خوبه!

  9. #9
    حـــــرفـه ای neopersia's Avatar
    تاريخ عضويت
    Oct 2006
    پست ها
    3,580

    پيش فرض

    درسته شاید بشه با انکود کردن همه داده ها جلوی حملات رو گرفت ولی منابع سیستم رو هدر میده چون هم سیستم باید انرژی بزاره اطلاعات رو انکود و دکود کنه و هم اینکه معمولاً حجم داده های انکود شده بیشتر از داده های معمولی هست و فضا و انرژی بیشتری از سرور دیتابیس میگیره
    هر داده ای رو لازم نیست انکود کنیم و تو دیتابیس ذخیره کنم بهتره از این کار برای مواقع خاص استفاده بشه مثلاً همون کلمه عبور رو هش کنیم کافیه با md5 یا sha1 و روشهای مشابه اینها که قابل برگشت نباشه
    برای داده های معمولی روشهای ساده تری هست مثلاً stripslashes که البته باید با دقت استفاده بشه چون ممکنه اگه داده های escape شده رو دوباره escape کنیم خطر اینجکشن هنوز هم وجود داره و فقط کار خودمونو خنثی کردیم
    برای موتورهای دیتابیس مختلف هم توابع مختلفی وجود داره که داده ها رو اسکیپ میکنه مثلاً mysql_real_escape برای mysql یا sqlite_escape_string برای SQLite که بهتره از اونا برای آماده سازی اطلاعات برای قرار گرفتم تو کوئری ها استفاده کنیم
    برای اطلاعات بیشتر در مورد این توابع میتونید به manual خود php مراجعه کنید که توضیحات خوبی داده
    Last edited by neopersia; 07-04-2008 at 18:59.

  10. #10
    داره خودمونی میشه arash_black's Avatar
    تاريخ عضويت
    Jul 2007
    پست ها
    67

    پيش فرض

    دوستان عزيز از جواب هاي خيلي كاملتون ممنونم
    خوب اين بحث از اهميت خيلي زيادي برخورداره چون ممكنه حاصل همه تلاش هاي برنامه نويس در عرض چند لحظه به باد بره و اصلا كل ديتابيس در يك چشم به هم زدن از بين بره ، خوب ايده من اين بود كه تمام درگاههاي ورود به يك سيستم ، كه با كاربر تعامل دارند و با دريافت مقادير از كاربر اون رو به صفحات شخصي هدايت مي كنند بايد از امنيت زيادي برخوردار باشند و به نظر من ، اگر بشه راه SQL INJECTION رو بست اونوقت ديكه ميشه ادعا كرد كه سيستم از امنيت خوبي برخورداره.
    با توجه به اينكه در اين حملات از دستورات مشخصي استفاده ميشه و اينكه اين دستورات رو جناب هكر عموما در text box ها تايپ ميكنه ، راه هاي خيلي زيادي براي اين حملات گفته شده مثل : محدود كردن سايز text box يا استفاده از توابعي كه كاراكترهاي خطرناك مثل " يا / رو حذف ميكنند يا encode كردن مقاديري از ديتا بيس كه قراره مورد تطبيق قرار بگيرن و ... كه البته همشون مطلق نيستند .
    با توجه به اطلاعات محدود خودم ، به نظر ميزسه كه استفاده از رمز گذاري روش مناسبيه ، اما حالا كه بحث داره به جاي خوبي ميرسه ، مي خوام از شما خواهش كنم كه ايده هاتون رو براي ايمن كردن سيستم و جلوگيري از حملات احتمالي بيان كنيد تا بيشتر بحث كنيم . ممنون

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

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

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •