نمایش نتایج 1 تا 8 از 8

نام تاپیک: چند سوال درباره اس کیو ال اینجکشن

  1. #1

    چند سوال درباره اس کیو ال اینجکشن

    سلام

    چند سوال درباره اس کیو ال اینجکشن داشتم :
    1- یک تعریف جامع از اس کیو ال اینجکشن میخوام
    2- اس کیو ال اینجکشن، مختص اس کیو ال سرور ماکروسافت هست یا شامل دیگر دیتابیس ها هم میشود ؟
    3- عملیاتی که در اس کیو ال اینجکشن انجام میشود چه چیزهایی است؟
    4-اس کیو ال اینجکشن مختص برنامه های تحت وب هست یا شامل win application هم میشود ؟


    با تشکر

  2. #2

    نقل قول: چند سوال درباره اس کیو ال اینجکشن

    سلام.
    1- اینجا رو ببینید.
    2- خیر الزاما مختص SQL Server نیست و نوعی تزریق کد به TSQL رو می گویند که این زبان تقریبا زبان استاندارد برای بانکهای اطلاعاتی دیگر هم هست.
    3- هر کاری که شما میتوانید توسط دستورات SQL Server انجام دهید در این عملیات شامل می شود.
    4- شامل هر برنامه ای که از SQL Server استفاده میکند.

  3. #3

    نقل قول: چند سوال درباره اس کیو ال اینجکشن

    اون مقاله را هم دانلود میکنم ولی اگه میشه در چند خط اس کیو ال اینجکشن را تعریف کنید

  4. #4

    نقل قول: چند سوال درباره اس کیو ال اینجکشن

    درواقع SQL Injection تزریق کد مورد نظر به یک رشته SQL Server هست.
    فرض کنید تکه کدی مانند زیر در برنامه استفاده کردید.

    " من مثال رو با دلفی بیان میکنم"


    With Adoquery Do
    Begin
    SQL.clear;
    SQl.add('Select * from table1 where name='+edit1.text);
    open;

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

    '';Delete from Table1;--

    در اینجا کاربر ابتدا رشته شما رو بسته و رشته خودش رو اضافه میکنه و در اخر مابقی دستور رو نیز Comment میکنه .
    به این میگن تزریق کد.
    که راه برای جلوگیری از این مورد استفاده از ارسال پارامتریک مقادیر هست یا استفاده از SP.

  5. #5

    نقل قول: چند سوال درباره اس کیو ال اینجکشن

    نقل قول نوشته شده توسط حمیدرضاصادقیان مشاهده تاپیک
    درواقع SQL Injection تزریق کد مورد نظر به یک رشته SQL Server هست.
    فرض کنید تکه کدی مانند زیر در برنامه استفاده کردید.

    " من مثال رو با دلفی بیان میکنم"


    With Adoquery Do
    Begin
    SQL.clear;
    SQl.add('Select * from table1 where name='+edit1.text);
    open;

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

    '';Delete from Table1;--

    در اینجا کاربر ابتدا رشته شما رو بسته و رشته خودش رو اضافه میکنه و در اخر مابقی دستور رو نیز Comment میکنه .
    به این میگن تزریق کد.
    که راه برای جلوگیری از این مورد استفاده از ارسال پارامتریک مقادیر هست یا استفاده از SP.
    با فرض ایننکه کاربر دستور delete وارد کرد ولی دستور اصلی دستور سلکت هست حالا نقش دستور DELETE اینجا چیهههه؟

    چه جوری این کد میتونه به اس کیو ال تزریق بشه؟

  6. #6

    نقل قول: چند سوال درباره اس کیو ال اینجکشن

    با فرض ایننکه کاربر دستور delete وارد کرد ولی دستور اصلی دستور سلکت هست حالا نقش دستور DELETE اینجا چیهههه؟
    پس توضیحات رو برای چی دادن ؟ خوندیشون ؟

    فرض کن تو ادیت کدی که آقای صادقیان گفت رو بنویسی :

    '';Delete from Table1;--


    این کد به رشته اصلی میچسبه و تشکیل رشته زیر رو میده :

    Select * from table1 where name= '';Delete from Table1;--


    حالا کد زیر به SQL برای اجرا ارجاع داده میشه و چون با ; از هم جدا شدن معادل دو دستور جدا هستن ، یعنی :

    Select * from table1 where name= '';
    Delete from Table1;--


    خوب خط اول اجرا میشه و جدول رو بر اساس اسم های خالی فیلتر میکنه ؛ حالا خط دوم اجرا میشه و اطلاعات شما رو به فنا میده ... ! OK ؟

  7. #7

    نقل قول: چند سوال درباره اس کیو ال اینجکشن

    نقل قول نوشته شده توسط مجتبی تاجیک مشاهده تاپیک
    پس توضیحات رو برای چی دادن ؟ خوندیشون ؟

    فرض کن تو ادیت کدی که آقای صادقیان گفت رو بنویسی :

    '';Delete from Table1;--


    این کد به رشته اصلی میچسبه و تشکیل رشته زیر رو میده :

    Select * from table1 where name= '';Delete from Table1;--


    حالا کد زیر به SQL برای اجرا ارجاع داده میشه و چون با ; از هم جدا شدن معادل دو دستور جدا هستن ، یعنی :

    Select * from table1 where name= '';
    Delete from Table1;--


    خوب خط اول اجرا میشه و جدول رو بر اساس اسم های خالی فیلتر میکنه ؛ حالا خط دوم اجرا میشه و اطلاعات شما رو به فنا میده ... ! OK ؟
    پس طرف باید اطلاعاتی مثل نام جدول و ... را داشته باشه تا بتونه اجراش کنه ؟

  8. #8

    نقل قول: چند سوال درباره اس کیو ال اینجکشن

    نام جداول و ... رو هم میشه با Query به دست آورد ، کافیه طرف به T-SQL مسلط باشه ، پیشنهاد میکنم چندتا آموزش SQL Injection که در سایت های هک و کرک به وفور پیدا میشه بگیری و ببینی .

تاپیک های مشابه

  1. چند سوال درباره استفاده از بهترین بانک اطلاعاتی در دلفی
    نوشته شده توسط MOHSEN731 در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: جمعه 26 فروردین 1384, 02:40 صبح
  2. چند سوال درباره جاوا و JBuilder
    نوشته شده توسط webdeveloper در بخش برنامه‌نویسی جاوا
    پاسخ: 1
    آخرین پست: جمعه 30 مرداد 1383, 00:55 صبح
  3. چند سوال درباره بانکهای اطلاعاتی
    نوشته شده توسط MOHSEN731 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 3
    آخرین پست: جمعه 17 بهمن 1382, 12:06 عصر
  4. چند سوال درباره ASP.NET
    نوشته شده توسط Majid2003 در بخش ASP.NET Web Forms
    پاسخ: 6
    آخرین پست: سه شنبه 15 مهر 1382, 23:34 عصر

قوانین ایجاد تاپیک در تالار

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