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

موضوع: آموزش بستن باگ SQL injection در PHP

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    عضو جدید ParnianData آواتار ها
    تاریخ عضویت
    Jun 2015
    محل سکونت
    یزد
    نوشته ها
    7
    تشکر تشکر کرده 
    35
    تشکر تشکر شده 
    14
    تشکر شده در
    8 پست

    Question آموزش بستن باگ SQL injection در PHP

    سلام روزتون بخیر

    خب بی مقدمه بریم سراغ اموزش:

    آموزش بستن باگ SQL injection در PHP :


    اول بپردازیم به این که این باک ها چجوری ایجاد میشن .

    ببینید در بحث واکشی از پایگاه داده ما از طریق دستورات PHP یه Query جاری میکنیم تا اطلاعات مارو از دیتابیس بخونه برای مثال :
    SELECT * FROM content WHERE title='ParnianData'

    در این کوئری ما درخواست کردیم تا هرچی ستون هست رو جایی که تایتل ما ParnianData هست انتخاب کن .


    خوب اگه ورودی های ما امن نباشه هکر میتونه یه سری دستورات دیگه به این کوئری ما تزریق کنه . برای مثال :
    SELECT * FROM content WHERE title=$_GET['title']

    ما خواستیم هرچیزی که در مقدار title هست جستجو بشه در حقیقت هرچیزی در آدرس بار در مقدار title هست داخل دیتابیس سرچ بشه به این صورت :
    localhost/post.php?title=ParnianData

    حالا برای خراب کردن این کوئری کافیه یدونه ' در آخر آدرس بار وارد کنیم .
    localhost/post.php?title=ParnianData'

    جالا کوئری جاری میشه :
    SELECT * FROM content WHERE title=$_GET['title']'

    و اروری نشون میده مبنی بر این که کوئری سالم نیست .

    و از این طریق هکر میفهمه که ورودی های ما امن نیست و میشه دستورات رو تزریق کرد .

    خوب حالا هکر میاد از طریق دستورات ORDER BY , Union Select تعداد ستون ها و ردیف های مارو از دیتابیس میخونه و شروع میکنه به بیرون کشیدن نام جدول هامون .

    و سپس کوئری مورد نظر خودش رو تزریق میکنه تا به رمز و یوزر مدیریت سایت برسه و یا محتوایی رو روی وبسایت اضافه یا کم کنه .

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

    ما میتونیم از توابع موجود زیادی در PHP برای امن کردن ورودی ها استفاده کنیم .

    به عنوان مثال :

    filter_var
    str_replace
    mysql_real_scape_string
    .
    .
    .

    ما توی این جلسه قصد داریم با مورد سوم کار کنیم .

    برای شروع کار ما باید ورودی رو داخل یه متغیر بریزیم :
    $title = $_GET['title']

    حالا امن کنیم :
    $title = mysql_real_scape_string($_GET['title'])

    در این صورت ورودی ما بصورت استرینگ های قابل قبول برای Mysql تعریف میشه و اگه کاراکتر غیر مجاز یا کوئری دیگه ای بخوایم جاری کنیم تبدیل میشه به یه چیز نا مفهوم .

    و حالا متغیر تایتل رو در کوئری مورد نظر جایگذین میکنیم :
    $title = mysql_real_scape_string($_GET['title'])

    SELECT * FROM content WHERE title='$title'

    به این صورت ورودی ما امن شد .

    در جلسات بعدی بصورت ترکیبی اقدام به ساخت یه مجموعه ای از توابع برای ایمن کردن ورودی ها خواهیم پرداخت .

    موفق باشید .

    با تشکر از گروه ادمینا
    فایل پی دی اف هم ضمیمه شد
    فایل های پیوست شده فایل های پیوست شده

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


  3. #2
    عضو انجمن yastheme آواتار ها
    تاریخ عضویت
    Oct 2010
    محل سکونت
    Izadshahr
    نوشته ها
    482
    تشکر تشکر کرده 
    434
    تشکر تشکر شده 
    1,565
    تشکر شده در
    691 پست

    پیش فرض پاسخ : آموزش بستن باگ SQL injection در PHP

    mysql_real_scape_string به تنهایی برای SQL Injection کافی نیست و اسکریپت شما را امن نمی کند.
    باید از توبع دیگر هم استفاده کرد

    سنترال هاستینگ - اولین سرویس دهنده DDoS Protected ایرانی!
    █ شرکت ایمن میزبان راهبر کاسپین (شماره ثبت : 1799 شناسه ملی: 14006354907 )


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


  5. #3
    عضو جدید ParnianData آواتار ها
    تاریخ عضویت
    Jun 2015
    محل سکونت
    یزد
    نوشته ها
    7
    تشکر تشکر کرده 
    35
    تشکر تشکر شده 
    14
    تشکر شده در
    8 پست

    پیش فرض پاسخ : آموزش بستن باگ SQL injection در PHP

    نقل قول نوشته اصلی توسط yastheme نمایش پست ها
    mysql_real_scape_string به تنهایی برای SQL Injection کافی نیست و اسکریپت شما را امن نمی کند.
    باید از توبع دیگر هم استفاده کرد

    بله درسته

    انشالله توی همین تاپیک سایر توابع رو اموزش خواهیم داد

    ممنون از توضیحتون
    موفق باشید

    - - - Updated - - -

    نقل قول نوشته اصلی توسط GREAT نمایش پست ها
    مطلب مفیدی بود
    اما نیاز هست توابع دیگر مربوط به مای اسکیو ال نیز امن شوند تا امنیت به حد مطلوب برسد!
    بحرحال ممنون از اموزش
    بله درست هست
    انشالله سایر اموزش ها رو هم قرار میدیم تا دوستان عزیز استفاده کنند
    موفق باشید

  6. #4
    عضو انجمن J0k3R آواتار ها
    تاریخ عضویت
    Sep 2013
    نوشته ها
    110
    تشکر تشکر کرده 
    163
    تشکر تشکر شده 
    108
    تشکر شده در
    78 پست

    پیش فرض پاسخ : آموزش بستن باگ SQL injection در PHP

    ممنون.مفید بود

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


  8. #5
    عضو انجمن GREAT آواتار ها
    تاریخ عضویت
    Mar 2014
    نوشته ها
    213
    تشکر تشکر کرده 
    44
    تشکر تشکر شده 
    216
    تشکر شده در
    182 پست

    پیش فرض پاسخ : آموزش بستن باگ SQL injection در PHP

    نقل قول نوشته اصلی توسط ParnianData نمایش پست ها
    سلام روزتون بخیر

    خب بی مقدمه بریم سراغ اموزش:

    آموزش بستن باگ SQL injection در PHP :


    اول بپردازیم به این که این باک ها چجوری ایجاد میشن .

    ببینید در بحث واکشی از پایگاه داده ما از طریق دستورات PHP یه Query جاری میکنیم تا اطلاعات مارو از دیتابیس بخونه برای مثال :
    SELECT * FROM content WHERE title='ParnianData'

    در این کوئری ما درخواست کردیم تا هرچی ستون هست رو جایی که تایتل ما ParnianData هست انتخاب کن .


    خوب اگه ورودی های ما امن نباشه هکر میتونه یه سری دستورات دیگه به این کوئری ما تزریق کنه . برای مثال :
    SELECT * FROM content WHERE title=$_GET['title']

    ما خواستیم هرچیزی که در مقدار title هست جستجو بشه در حقیقت هرچیزی در آدرس بار در مقدار title هست داخل دیتابیس سرچ بشه به این صورت :
    localhost/post.php?title=ParnianData

    حالا برای خراب کردن این کوئری کافیه یدونه ' در آخر آدرس بار وارد کنیم .
    localhost/post.php?title=ParnianData'

    جالا کوئری جاری میشه :
    SELECT * FROM content WHERE title=$_GET['title']'

    و اروری نشون میده مبنی بر این که کوئری سالم نیست .

    و از این طریق هکر میفهمه که ورودی های ما امن نیست و میشه دستورات رو تزریق کرد .

    خوب حالا هکر میاد از طریق دستورات ORDER BY , Union Select تعداد ستون ها و ردیف های مارو از دیتابیس میخونه و شروع میکنه به بیرون کشیدن نام جدول هامون .

    و سپس کوئری مورد نظر خودش رو تزریق میکنه تا به رمز و یوزر مدیریت سایت برسه و یا محتوایی رو روی وبسایت اضافه یا کم کنه .

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

    ما میتونیم از توابع موجود زیادی در PHP برای امن کردن ورودی ها استفاده کنیم .

    به عنوان مثال :

    filter_var
    str_replace
    mysql_real_scape_string
    .
    .
    .

    ما توی این جلسه قصد داریم با مورد سوم کار کنیم .

    برای شروع کار ما باید ورودی رو داخل یه متغیر بریزیم :
    $title = $_GET['title']

    حالا امن کنیم :
    $title = mysql_real_scape_string($_GET['title'])

    در این صورت ورودی ما بصورت استرینگ های قابل قبول برای Mysql تعریف میشه و اگه کاراکتر غیر مجاز یا کوئری دیگه ای بخوایم جاری کنیم تبدیل میشه به یه چیز نا مفهوم .

    و حالا متغیر تایتل رو در کوئری مورد نظر جایگذین میکنیم :
    $title = mysql_real_scape_string($_GET['title'])

    SELECT * FROM content WHERE title='$title'

    به این صورت ورودی ما امن شد .

    در جلسات بعدی بصورت ترکیبی اقدام به ساخت یه مجموعه ای از توابع برای ایمن کردن ورودی ها خواهیم پرداخت .

    موفق باشید .

    با تشکر از گروه ادمینا
    فایل پی دی اف هم ضمیمه شد
    مطلب مفیدی بود
    اما نیاز هست توابع دیگر مربوط به مای اسکیو ال نیز امن شوند تا امنیت به حد مطلوب برسد!
    بحرحال ممنون از اموزش

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


  10. #6
    عضو انجمن us12 آواتار ها
    تاریخ عضویت
    Jul 2012
    نوشته ها
    244
    تشکر تشکر کرده 
    75
    تشکر تشکر شده 
    284
    تشکر شده در
    198 پست

    پیش فرض پاسخ : آموزش بستن باگ SQL injection در PHP

    با استفاده از PDO دیگه نگران انجکشن نباشید . فقط بحث روش های دیگر هک مثل xxs مطرح است.
    برنامه نویسی => www.SOFTIRAN.org
    ----------------------------------------------------------

  11. #7
    کاربر اخراج شده
    تاریخ عضویت
    Jan 2016
    نوشته ها
    11
    تشکر تشکر کرده 
    4
    تشکر تشکر شده 
    2
    تشکر شده در
    2 پست

    پیش فرض پاسخ : آموزش بستن باگ SQL injection در PHP

    در کل بهتره از mysqli استفاده کنید که این مشکلات رو نداشته باشید...

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

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

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

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

  1. تزریق وابستگی در فریم ورک اسپرینگ (Dependency Injection)
    توسط saeed.mihan در انجمن دیگر زبان ها
    پاسخ ها: 1
    آخرين نوشته: July 10th, 2017, 00:32
  2. جلوگیری از هک sql injection
    توسط mashhadweb در انجمن PHP-MySQL
    پاسخ ها: 5
    آخرين نوشته: March 18th, 2015, 17:23
  3. آموزش تصویری پچ کردن باگ های SQL Injection
    توسط News -Portal در انجمن مباحث دیگر
    پاسخ ها: 0
    آخرين نوشته: March 8th, 2014, 12:41
  4. آموزش تصویری پچ کردن باگ های SQL Injection
    توسط News -Portal در انجمن مباحث دیگر
    پاسخ ها: 0
    آخرين نوشته: March 8th, 2014, 12:40
  5. جلوگیری از حملات Sql injection
    توسط yastheme در انجمن PHP-MySQL
    پاسخ ها: 1
    آخرين نوشته: November 10th, 2013, 11:42

کلمات کلیدی این موضوع

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

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