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

تبلیغات

تبلیغات متنی

خرید ووچر پرفکت مانی

تریدینگ ویو

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

کاشت ابرو

لمینت دندان

وکیل اصفهان

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

آیسان اسلامی

خرید تجهیزات صنعتی

دستگاه جوش لیزری اتوماتیک

دستگاه جوش لیزری اتوماتیک

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

تور چین

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

صرافی rkchange

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

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

دانلود فیلم

ناب مووی

مرجع خرید تجهیزات آشپزخانه

خرید زانوبند زاپیامکس

رسانه حرف تو - مقایسه و اشتراک تجربه خرید

کلاس باریستایی تهران

تعمیر کاتالیزور

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

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

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

سایت ایمالز

تور دبی

سایبان ماشین

جملات زیبا

دزدگیر منزل

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

ماربل شیت

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

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

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

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

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

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

رنگ استخری

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

راهبند تبریز

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

خرید مبل تختخواب شو

وکیل تبریز

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

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

شاپیفای چیست

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

دانلود رمان

واردات از چین

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

وکیل کرج

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

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

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

 






آمار وبسایت

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




هواشناسی

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

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
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]
[تعداد بازديد از اين مطلب: 604]

bt

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




-


گوناگون

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


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