تفاوت اصلی XSS و SQL Injection در این است که XSS (یا Cross Site Scripting) نوعی آسیب پذیری امنیتی رایانه است که کدهای مخرب را به وب سایت تزریق می کند تا کد توسط کاربران آن وب سایت اجرا شود. مرورگر در حالی که تزریق SQL یکی دیگر از مکانیسم های هک وب سایت است که کد SQL را به کادر ورودی فرم وب اضافه می کند تا به منابع دسترسی پیدا کند یا تغییراتی در داده ها ایجاد کند.
هر سازمانی وب سایت هایی را نگهداری می کند که به بهبود کسب و کار و سودآوری کمک می کند. یک برنامه وب شامل سمت مشتری و سمت سرور است. سمت مشتری شامل رابط های کاربری برای تعامل با برنامه است.سمت سرور شامل پایگاه داده است. معمولاً تهدیداتی وجود دارد که بر عملکرد صحیح برنامه تأثیر می گذارد. دو مورد از آنها XSS و تزریق SQL هستند.
XSS چیست؟
XSS مخفف Cross Site Scripting است و یکی از رایج ترین حملات وب سایت است. می تواند آن وب سایت خاص و همچنین کاربران آن وب سایت را تحت تأثیر قرار دهد. رایج ترین زبان برای نوشتن کدهای مخرب برای حمله XSS، جاوا اسکریپت است. XSS میتواند کوکیهای کاربر را بدزدد، تنظیمات کاربر را تغییر دهد، بارگیریهای مختلف بدافزار و بسیاری موارد دیگر را نمایش دهد.
شکل 01: XSS
دو نوع XSS وجود دارد. آنها XSS پایدار و غیر پایدار هستند. در XSS مداوم، کد مخرب در سرور در پایگاه داده ذخیره می شود. سپس در صفحه معمولی اجرا می شود. در XSS غیر دائمی، کد مخرب تزریق شده از طریق یک درخواست HTTP به سرور ارسال می شود.معمولاً این حملات می توانند در فیلدهای جستجو رخ دهند.
SQL Injection چیست؟
SQL Injection یکی دیگر از مکانیسم های هک وب سایت است. از طریق ورودی صفحه وب، یک کد مخرب را در دستورات SQL قرار می دهد. یک وب سایت حاوی فرم هایی برای جمع آوری ورودی های کاربر است. هنگامی که از کاربر برای ورودی هایی مانند نام کاربری، userid درخواست می کند، ممکن است به جای name و آن، یک دستور SQL ارائه دهد. بنابراین، می تواند در پایگاه داده وب سایت اجرا شود.
شکل 02: تزریق SQL
علاوه بر این، چند نمونه از تزریق SQL به شرح زیر است؛
ممکن است موقعیتی برای جستجوی کاربر از طریق userid وجود داشته باشد. اگر روش اعتبار سنجی ورودی وجود نداشته باشد، کاربر می تواند ورودی اشتباهی را وارد کند. اگر کاربر ID را به صورت 100 یا 1=1 وارد کند، یک دستور SQL به صورت زیر ایجاد می کند.
انتخاباز کاربرانی که userid=100 یا 1=1;
این دستور SQL می تواند همه کاربران پایگاه داده را برگرداند زیرا 1=1 همیشه درست است. اگر این یک هکر بود و اگر پایگاه داده حاوی داده های محرمانه مانند رمزهای عبور بود، می تواند به نام های کاربری و رمز عبور دسترسی پیدا کند. این یک مثال برای SQL Injection است.
تفاوت بین XSS و SQL Injection چیست؟
XSS نوعی آسیبپذیری امنیتی رایانه در برنامههای کاربردی وب است که مهاجمان را قادر میسازد تا اسکریپتهای سمت کلاینت را به صفحات وب که توسط سایر کاربران مشاهده میشوند تزریق کنند. تزریق SQL یک تکنیک تزریق کد است که به برنامههای مبتنی بر داده حمله میکند که عبارات SQL را در یک ورودی ثبت شده برای اجرا درج میکنند.
XSS کدهای مخرب را به وب سایت تزریق می کند، به طوری که کد توسط مرورگر در کاربران آن وب سایت اجرا می شود. از سوی دیگر، تزریق SQL کد SQL را به کادر ورودی فرم وب اضافه می کند تا به منابع دسترسی پیدا کند یا تغییراتی در داده ها ایجاد کند.این تفاوت اصلی بین XSS و SQL Injection است. رایج ترین زبان برای XSS جاوا اسکریپت است در حالی که تزریق SQL از SQL استفاده می کند.
خلاصه - XSS در مقابل تزریق SQL
تفاوت بین XSS و SQL Injection در این است که XSS کدهای مخرب را به وب سایت تزریق می کند، به طوری که کد توسط مرورگر در کاربران آن وب سایت اجرا می شود در حالی که تزریق SQL کد SQL را به کادر ورودی فرم وب اضافه می کند. دسترسی به منابع یا ایجاد تغییرات در داده ها داشته باشید.