درباره نویسنده

15 Comments

  1. مجتبی شهریور

    مجتبی شهریور

       سلام
    تشکر از مقاله خوبتون
    مهندس این کار باعت تزریق کدهای sql و ایجاد باگ sql injection نمیشه؟

    پاسخ دادن
    1. محمد رضا موسائی سجزی

      محمد رضا موسائی سجزی

          با سلام خدمت دوست عزیز آقای مجتبی شهریور

      دوست من همانگونه در تصاویر مشاهده می نمائید در زمان اضافه شدن دو dll سطح دسترسی (Permission set)  بر روی Safe و External access می باشد و این امر باعث می شود که خود SQL Server  مدیریتی دقیق بر روی sql injection  و تزریق کدهای sql یا به نحوی موارد Hacking داشته باشد.
      این امر نه تنها باعث پایین آمدن امنیت نمی گردد بلکه امنیت تا حد چشم گیری بالا خواهد رفت.
      با تشکر
      پاسخ دادن
      1. Hamid J. Fard

        Hamid J. Fard

           البته Permission_Set برای SQL Injection نیست. برای این است که کدی که شما در SQL CLR Assembly نوشته اید از منابع خارج از SQL Server مانند شبکه یا اختصاص حافظه خارج از AppDomain جلوگیری می کند.
      2. محمد رضا موسائی سجزی

        محمد رضا موسائی سجزی

         با سلام خدمت دوست عزیز آقای Hamid J.Fard
        در ابتدا از ریز بینی شما ممنونم بله به ظاهر اینگونه که عرض می کنید هستش ولی چند نکته ای عزیزم اینجا مطرح هست یکی اینکه سه نوع سطح دسترسی داریم (Safe, External Access و Unrestricted  ) 
        در مورد سطح دسترسی External Access  و  Unrestricted باید بگم که اگر تنها ارتباط با منابع خارج از MSSQL Server هدف باشد می توان از سطح دسرتسی Unrestricted نیز استفاده و بهره برد ولی تفاوتی که من با توجه به منابعی که مطالعه کردم در مورد سرویس ها و استفاده آن به این صورت این هست که تنها یکی از تفاوت ها در استفاده از External Access این می باشد که بر روی موارد Hacking نیز MSSQL Serverحساس بوده و نظارتی انجام می دهد. 
        منابع  مورد استفاده کتاب های Exam 70-482 , 70-483 می باشد.
        با تشکر از شما دوست عزیز
      3. محمد رضا موسائی سجزی

        محمد رضا موسائی سجزی

            شرمنده چون نتونستم نظر خود را ویرایش کنم مجبور شدم دوباره مطلب بذارم 

        منابع  مورد استفاده کتاب های Exam 70-462 , 70-463 می باشند که در پست قبلی اشتباه تایپ کرده بودم
      4. Hamid J. Fard

        Hamid J. Fard

           البته نظر بنده با شما ۱۸۰ درجه فرق دارد به این صورت که SQL CLR یکی ربطی به SQL Injection ندارد و {Permission_set فقط برای امنیت CLR و AppDomain است.
        و External_Access موارد زیر را ارایه می دهد:

        DistributedTransactionPermission

        DNSPermission

        EnvironmentPermission

        EventLogPermission

        FileIOPermission

        KeyContainerPermission

        NetworkInformationPermission

        RegistryPermission

        SecurityPermission

        SmtpPermission

        SocketPermission

        SqlClientPermission

        StorePermission

        WebPermission

        و در آخر شما زیاد به کتابهای Training Kit مایکروسافت توجه نکه خیلی از مطالبی که نوشته شوده درست  نیست. اگر باور ندارید یک سرچ کنید.

      5. محمد رضا موسائی سجزی

        محمد رضا موسائی سجزی

        با سلام خدمت دوست عزیز آقای Hamid J.Fard

        از راهنمایی شما دوست عزیز ممنونم و سعی میکنم دامنه اطلاعاتی خودم را گسترش دهم و در کنار آن از منابع غیر Training Kit هم استفاده کنم.

        باز هم از راهنمایی جامعتون ممنون
  2. مجتبی شهریور

    مجتبی شهریور

    سلام
    تشکر از پاسخ حضرتعالی
    موفق باشید

    پاسخ دادن
  3. شريف لطفي

    شريف لطفي

      بابت مقاله خوبتون ممنون

    از سايت نيك آموز ميخوام اگه امكانش هست يك آموزش كاملا عملي با مثال كاذبردي و پروژه محور راجع به وب سرويس و ارسال پيامك به مدير (ترجيحا راجع به تراكنشهاي پرداخت بانكي) توي سايت قرار بدن
    پاسخ دادن
    1. مسعود طاهری

      مسعود طاهری

          سلام شریف جان

      در خصوص این قضیه در دوره SQL Server ویژه برنامه نویسان آموزش های لازم ارائه داده شده است.
      استفاده از Service Broker و External Activation برای ارسال SMS دقیقا همین مثال در جلسه آخر پیاده سازی شده است.
      گزارش جلسه ۱۵ دوره SQL Server ویژه برنامه نویسان را در سایت مطالعه کنید 
      پاسخ دادن
      1. محمد رضا موسائی سجزی

        محمد رضا موسائی سجزی

        با سلام خدمت استاد ارجمند و بزرگوار جناب آقای طاهری
        بله امکان Service Broker از ورژن ۲۰۰۵ به MSSQL Server اضافه گشت ولی در آن زمان که من برای ورژن ۲۰۰۸ MSSQL Server داشتم این کار را انجام می دادم به مشکلی خوردم که نتونستم حلش کنم و به سراغ این روش رفتم و آن هم این هستش که در برخی سرویس ها به عنوان مثال سرویس ها که به صورت خیلی Custom توسط شرکت ها ارائه میشن مبتنی بر Token هستن و بعضا Header مربوط به سرویس را با توجه به سیاست های امنیتی خود تغییر داده اند و از حالت استاندارد خارج می کنند و تا ورژن MSSQL Server 2008 R2 من نتوانستم از Service Broker برای این امر استفاده کنم.
    2. محمد رضا موسائی سجزی

      محمد رضا موسائی سجزی

      با سلام خدمت دوست عزیز آقای شریف لطفی

      دوست عزیز منم از شما بخاطر خواندن آن ممنونم
      پاسخ دادن
  4. مهدی ربانی ذبیحی

    مهدی ربانی ذبیحی

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

    پاسخ دادن
    1. محمد رضا موسائی سجزی

      محمد رضا موسائی سجزی

          با سلام خدمت دوست عزیز آقای مهدی ربانی ذبیحی

      دوست عزیز منم از شما بخاطر خواندن این مقاله تا انتها سپاسگذارم
      پاسخ دادن
  5. فرشید علی اکبری

    فرشید علی اکبری

    سلام

    ضمن عرض تبریک سال جدید به همه کاربران نیک آموزی و تشکر از مطلب مفیدی که در این سایت به اشتراک گذاشتید میخواستم بدونم برای استفاده از وب سرویس ها در SQL SERVER، آیــا راهکارهای دیگری (یا بهتری) هم هست که در حالات خاصی باعث اُفت تراکنشهای بانک اطلاعاتی و Performance اون نشه؟
    پاسخ دادن

ارسال نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تمامی حقوق مادی و معنوی این وب سایت متعلق به نیک آموز می باشد.
این سایت توسط تیم آموزش برنامه نویسی نیک آموز مدیریت می شود.