آموزش مقابله با حملات تزریق (Injection Attacks) در ASP.NET Core

پرووید

Defeating Injection Attacks in ASP.NET and ASP.NET Core
تعداد ویدئو 9
زمان دوره 00:26:58
مترجم مرتضی گیتی
دوبلر مرتضی گیتی
سایت منتشر کننده پلورال سایت

1,599,000 ریال

دسته های محصولات

آموزش مقابله با حملات تزریق (Injection Attacks) در ASP.NET Core یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته  آموزشی، محافظت از اپلیکشن های ASP.NET و ASP.NET Core در برابر حملات تزریق (Injection Attacks) است که با نام اصلی Defeating Injection Attacks in ASP.NET and ASP.NET Core از شرکت Pluralsight منتشر شده است.

SQL Injection چیست؟

بسیاری از آسیب پذیری ها وجود دارند که اجازه می دهند که تا هکرها بتوانند داده هایی را از سازمان های مختلف به سرقت ببرند. حملات تزریق SQL و یا SQL Injection یکی از آنهاست. شاید بتوان گفت که حملات SQL Injection یکی از معمول ترین حملاتی است که در application layer استفاده می شود. زمانی که یک web application با تکنیک های کدنویسی نامناسب ساخته شود، یک هکر می تواند دستورات SQL را به درون برنامه تزریق نماید. به این شکل یک هکر می تواند داده های web application را به سرقت برده و آنها را تغییر بدهد و یا حتی آنها را به طور کامل و همیشیگی پاک کند. به بیان ساده، تزریق SQL و یا SQL Injection حملاتی هستند که در آن یک کاربر بدخواه می تواند دستورات SQL را با استفاده از یک web page به درون برنامه شما تزریق کند. اینگونه از دستورات باعث شکسته شدن حفاظت های امنیتی web application خواهد شد. حال در رابطه با این صحبت خواهیم کرد که حملات SQL Injection به چه شکل در وب سایت های نوشته شده با ASP.NET لحاظ می شوند. فرض کنید که یک table به نام login در برنامه شما وجود دارد در قسمت زیر نمایش از این table را درون دیتابیس می بینید.


 



با استفاده از کد بالا خروجی زیر تولید خواهد شد.

<img class="aligncenter size-full wp-image-79087" src="https://provid.ir/wp-content/uploads/2022/07/Database-Table.png" alt="Defeating Injection Attacks in ASP.NET and ASP.NET Core - Database Table" width="388" height="142" />

حال فرض کنید که در این Table داده هایی را شبیه آنچه که در قسمت زیر می بینید وجود دارد.





با استفاده از کد بالا خروجی زیر تولید خواهد شد.

<img class="aligncenter size-full wp-image-79088" src="https://provid.ir/wp-content/uploads/2022/07/Table-with-Inserted-Data.png" alt="Defeating Injection Attacks in ASP.NET and ASP.NET Core - Table with Inserted Data" width="587" height="112" />

با استفاده از کد بالا خروجی زیر تولید خواهد شد.

حال با دو بار کلیک کردن بر روی کنترل Login یک Event Handler با نام Login 1 Abdicate برای شما ایجاد خواهد شد. کد زیر این موضوع را نشان می دهد.





حال اکر کد زیر را لحاظ کنید مرحله بعدی کار انجام خواهد شد.




<pre></pre>
<p style="text-align: justify;">دقت کنید که Index.aspx یک page دیگر است که پس از login شدن کاربر نشان داده خواهد شد. با فشار دادن دکمه F5 برنامه را اجرا کنید. در زمان runtime خواهیم دید که به چه شکل حملات SQL Injection انجام خواهد شد. بعد از اجرا کردن برنامه خروجی زیر نشان داده خواهد شد.</p>
<img class="aligncenter size-full wp-image-79090" src="https://provid.ir/wp-content/uploads/2022/07/run-the-project.png" alt="" width="516" height="226" />
<p style="text-align: justify;">حملات SQL Injection زمانی اتفاق خواهد افتاد که یک هکر username مربوطه را نمی داند. اگر هکر نداند که username چیست خیلی راحت می تواند از رشته یک برابر یک استفاده کند و حمله خود را انجام بدهد. این موضوع در مثال زیر نشان داده شده است.</p>
<img class="aligncenter size-full wp-image-79091" src="https://provid.ir/wp-content/uploads/2022/07/SQL-Injection.png" alt=" Defeating Injection Attacks in ASP.NET and ASP.NET Core - SQL Injection" width="518" height="298" />
<p style="text-align: justify;">حال اگر نگاهی به Code SQL Query بندازیم متوجه می شویم که به شکل زیر تغییر یافته است.</p>

<pre>

string qry=”select * from MyTable where Email='”+Login1.UserName+”‘and Password='”+Login1.Password+”‘ “;

بنابراین بر اساس username موردنظر Query ما شبیه به قسمت زیر خواهد شد.

select * from MyTable where Email=” or 1=1–‘and Password=”

Defeating Injection Attacks in ASP.NET and ASP.NET Core _ SQL query

حملات SQL Injection چه خطری دارند؟

فرض کنید که یک هکر اطلاعات مربوط به دستورات مربوط به SQL را به خوبی بلد است. بنابراین هکر می تواند به راحتی دیتابیس شما را تغییر بدهد. برای مثال فرض کنید هکر نام یکی از جداول دیتابیس را بداند. بنابراین او می تواند به راحتی دستوراتی از قبیل insert و delete و update را در قالب SQL بر روی برنامه شما تزریق کند.

به مثال زیر توجه کنید.

فرض کنید که در دیتابیس یک table با نام MyTable وجود دارد. حالا اگر بخواهیم داده های درون این Table را حذف کنیم می توانیم از دستور Delete From MyTable استفاده کنیم. تصویر زیر این موضوع را نشان می دهد.

Defeating Injection Attacks in ASP.NET and ASP.NET Core - query in TextBox

بنابراین با لحاظ کردن Query ای که در قسمت بالا می بینید کد زیر اجرا خواه شد.

select * from MyTable where Email= Delete from MyTable –‘and Password=” 

Defeating Injection Attacks in ASP.NET and ASP.NET Core - Query

حال اگر بخواهیم بررسی کنید که آیا داده ها از درون دیتابیس پاک شده اند یا خیر؟ کافی است که به درون نرم افزار SQL Express برویم و تمامی داده ها را با استفاده از یک Select Share Query شبیه به تصویر زیر انتخاب کنید.

Defeating Injection Attacks in ASP.NET and ASP.NET Core - deleted data from the database

Defeating Injection Attacks in ASP.NET and ASP.NET Core Snapshot

سرفصل مطالب آموزش ویدیویی مقابله با حملات تزریق (Injection Attacks) در ASP.NET Core

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

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین کسی باشید که دیدگاهی می نویسد “آموزش مقابله با حملات تزریق (Injection Attacks) در ASP.NET Core”

نشانی ایمیل شما منتشر نخواهد شد.

افزودن به سبد خرید