تور لحظه آخری
امروز : شنبه ، 8 اردیبهشت 1403    احادیث و روایات:  امام موسی کاظم (ع):رجب نام نهرى است در بهشت از شير سفيدتر و از عسل شيرين‏تر هركس يك روز از ماه رجب ر...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

بلومبارد

تبلیغات متنی

تریدینگ ویو

خرید اکانت اسپاتیفای

کاشت ابرو

لمینت دندان

ونداد کولر

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دانلود سریال سووشون

دانلود فیلم

ناب مووی

تعمیر گیربکس اتوماتیک

دیزل ژنراتور موتور سازان

سرور اختصاصی ایران

سایت ایمالز

تور دبی

سایبان ماشین

جملات زیبا

دزدگیر منزل

ماربل شیت

تشریفات روناک

آموزش آرایشگری رایگان

طراحی سایت تهران سایت

آموزشگاه زبان

اجاره سند در شیراز

ترازوی آزمایشگاهی

رنگ استخری

فروش اقساطی کوییک

راهبند تبریز

ترازوی آزمایشگاهی

قطعات لیفتراک

وکیل تبریز

خرید اجاق گاز رومیزی

آموزش ارز دیجیتال در تهران

شاپیفای چیست

فروش اقساطی ایران خودرو

واردات از چین

قیمت نردبان تاشو

وکیل کرج

تعمیرات مک بوک

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

سیسمونی نوزاد

پراپ تریدینگ معتبر ایرانی

نهال گردو

صنعت نواز

پیچ و مهره

خرید اکانت اسپاتیفای

صنعت نواز

لوله پلی اتیلن

کرم ضد آفتاب لاکچری کوین SPF50

دانلود آهنگ

طراحی کاتالوگ فوری

واردات از چین

اجاره کولر

دفتر شکرگزاری

تسکین فوری درد بواسیر

دانلود کتاب صوتی

تعمیرات مک بوک

قیمت فرش

خرید سی پی ارزان

 






آمار وبسایت

 تعداد کل بازدیدها : 1798415396




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

encode و decode در php


واضح آرشیو وب فارسی:سایت ریسک: arash_black07-04-2008, 12:26 AMدوستان سلام، ميدونيد كه يكي از نكات امنيتي در php استفاده از encode,decode هست كه براي تطبيق اطلاعات با پايگاه داده از اين تكنيك استفاده ميشه ، مي خواستم بدونم كدوم يك از دوستان اطلاعات بيشتري در اين زمينه داره و مي تونه اين تكنيك رو با مثال آموزش بده ؟؟؟ neopersia07-04-2008, 10:37 AMencode و decode برای تطبیق با پایگاه داده ها!؟ میشه بیشتر توضیح بدی dogtag07-04-2008, 01:06 PMبا اجازه ي اساتيد، من يه مختصري مي گم. شايد مفيد باشه. ببينيد مثلاً شما يه پسورد رو مي گيري و مي ذاري توي ديتابيس خب اگر encode نكني هر كس كه به DB دسترسي داره مي تونه بياد و پسورد رو بخونه ولي ميان encode مي كنند كه به دو صورته: 1- برگشت پذير مثل base64 2- برگشت نا پذير مثل md 5 كه البته امنيت md 5 خيلي بيشتره و مياد هر چي كه بهش مي دي با به الگوريتم خاص تبديل مي كنه به يه كد 32 حرفي مثل اين "HFEUSSIEHFSI4E7HTE87THTJ4E8 U87T" و حر وقت كه بخواي ببيتي پسورد وارد شده همين هست يا نه اول md 5ش رو مي گيري و با اين مقايسه مي كني اون base64 هم قابل برگشته. من اين رو بيشتر براي تبديل كاراكتر هاي بي خود به حروف از اين استفاده مي كنم براي كاراكتر هايي مثل : يا در تر از اون كاراكتر 0 (منظورم chr(0) ه نه 0) مثلاً "http : // wefwef . con" رو مي كنه "ahhkfkwk+fk043/fko349" حالا اين هم يه مثال: <?php $string = "salam"; print "BASE64: " . base64_encode($string) . "<br>"; print "MD 5: " . md 5($string) . "<br>"; print "decoded: " . base64_decode(base64_encode($string)) . "<br>"; ?> arash_black07-04-2008, 01:38 PMدوست عزيز از بابت توضيحاتت خيلي ممنونم، حالا به نظر تو استفاده از اين روش مي تونه بهترين روش براي تامين امنيت صفحات login باشه ، منظورم اينه كه چون خطرات SQL Enjection وجود داره اين روش مي تونه بهترين روش باشه ؟ dogtag07-04-2008, 02:11 PMنه اين جلوي injection رو نمي تونه بگيره براي اون بايد از scape (الان دقيقاً جلوم نيست. شك دارم) استفاده كني arash_black07-04-2008, 04:23 PMنه اين جلوي injection رو نمي تونه بگيره براي اون بايد از scape (الان دقيقاً جلوم نيست. شك دارم) استفاده كني فرض كن در يك ديتا بيس username و password كاربران رو به صورت encode يا md 5 وارد كرديم ، حالا در صفحه login يك user و pass از كاربر مي گيريم و پس از encode يا md 5 كردن اون با پايگاه داده تطبيق ميديم ،‌ در اينصورت اگر كاربر حملات SQL ENJECTION وارد كنه ، دستوراتش به شكل md 5 در مياد ، بنابراين از اين حملا ت جلوگيري ميشه ، اگر نظرت خلاف اين هست لطف ميكني بيشتر توضيح بدي ؟ MAXXX07-04-2008, 07:07 PMبین شما یه سو تفاهم شده عمل اینجکشن کشف پسورد هایه کاربران نیست !!! که با هش شدن پسورد ها ازش جلوگیری بشه شما فرض کن پسورد هارو هم هش کردی در دیتابیس یه فروشگاه هکری نفوذ میکنه و شماره و پسورد هایه کارت هایه اعتباری رو میدزده ولی چون پسورد یوزر ها هش شده بوده نمیتونه از پسورد و یوزرنیم کاربرا استفاده کنه حالا به نظر شما از حملش جلو گیری شده؟ وقتی که رمز کارت اعتباری رو داره دیگه پسورد و یوزر کاربری میخواد چیکار dogtag07-04-2008, 07:20 PMآرش جان تازه فهميدم چي ميگي آره عزيز اگه شما هر چيزي كه از كاربر مي گيري رو encode كني ديگه عملاً SQL Injection انجام نميشه ولي ايني كه MAXXX هم ميگه درسته يعني اگر يه جور ديگه وارد بشه مي تونه همه كار بكنه ولي من توصيه مي كنم كه انجامش بدي. خوبه! neopersia07-04-2008, 07:55 PMدرسته شاید بشه با انکود کردن همه داده ها جلوی حملات رو گرفت ولی منابع سیستم رو هدر میده چون هم سیستم باید انرژی بزاره اطلاعات رو انکود و دکود کنه و هم اینکه معمولاً حجم داده های انکود شده بیشتر از داده های معمولی هست و فضا و انرژی بیشتری از سرور دیتابیس میگیره هر داده ای رو لازم نیست انکود کنیم و تو دیتابیس ذخیره کنم بهتره از این کار برای مواقع خاص استفاده بشه مثلاً همون کلمه عبور رو هش کنیم کافیه با md 5 یا sha 1 و روشهای مشابه اینها که قابل برگشت نباشه برای داده های معمولی روشهای ساده تری هست مثلاً stripslashes که البته باید با دقت استفاده بشه چون ممکنه اگه داده های escape شده رو دوباره escape کنیم خطر اینجکشن هنوز هم وجود داره و فقط کار خودمونو خنثی کردیم برای موتورهای دیتابیس مختلف هم توابع مختلفی وجود داره که داده ها رو اسکیپ میکنه مثلاً mysql_real_escape برای mysql یا sqlite_escape_string برای SQLite که بهتره از اونا برای آماده سازی اطلاعات برای قرار گرفتم تو کوئری ها استفاده کنیم برای اطلاعات بیشتر در مورد این توابع میتونید به manual خود php مراجعه کنید که توضیحات خوبی داده arash_black08-04-2008, 02:32 AMدوستان عزيز از جواب هاي خيلي كاملتون ممنونم خوب اين بحث از اهميت خيلي زيادي برخورداره چون ممكنه حاصل همه تلاش هاي برنامه نويس در عرض چند لحظه به باد بره و اصلا كل ديتابيس در يك چشم به هم زدن از بين بره ، خوب ايده من اين بود كه تمام درگاههاي ورود به يك سيستم ، كه با كاربر تعامل دارند و با دريافت مقادير از كاربر اون رو به صفحات شخصي هدايت مي كنند بايد از امنيت زيادي برخوردار باشند و به نظر من ، اگر بشه راه SQL INJECTION رو بست اونوقت ديكه ميشه ادعا كرد كه سيستم از امنيت خوبي برخورداره. با توجه به اينكه در اين حملات از دستورات مشخصي استفاده ميشه و اينكه اين دستورات رو جناب هكر عموما در text box ها تايپ ميكنه ، راه هاي خيلي زيادي براي اين حملات گفته شده مثل : محدود كردن سايز text box يا استفاده از توابعي كه كاراكترهاي خطرناك مثل " يا / رو حذف ميكنند يا encode كردن مقاديري از ديتا بيس كه قراره مورد تطبيق قرار بگيرن و ... كه البته همشون مطلق نيستند . با توجه به اطلاعات محدود خودم ، به نظر ميزسه كه استفاده از رمز گذاري روش مناسبيه ، اما حالا كه بحث داره به جاي خوبي ميرسه ، مي خوام از شما خواهش كنم كه ايده هاتون رو براي ايمن كردن سيستم و جلوگيري از حملات احتمالي بيان كنيد تا بيشتر بحث كنيم . ممنون dogtag08-04-2008, 08:42 AMفكر كنم توي سايت irphp يا يه همچين چيز هايي يه سري مقاله راجع بهش بود وقت كنم پيدا مي كنم برات سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 605]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن