معرفی 10 روش و ابزار امنیت در جاوا اسکریپت

ابزار های امنیتی در جاوا اسکریپت، در این مقاله قصد داریم تا شما را به 10 مورد از روش ها و ابزار هایی که می توانند در بحث امنیت زبان برنامه نویسی جاوا اسکریپت به شما کمک کنند را بگوییم. برای اینکه بتوانیم درک بهتری از این مسئله داشته باشیم بیایید تا یک سری از مفاهیم را با همدیگه مرور کنیم.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

زبان برنامه نویسی جاوا اسکریپت (Java Script) چیست؟

زبان برنامه نویسی جاوا اسکریپت یک زبان برنامه نویسی سطح بالا محسوب می شود و این زبان هم میتواند برای برنامه نویسان کاربرد زیادی داشته باشد و هم برای طراحان وب که میتوانند از آن استفاده کنند.

زبان برنامه نویسی جاوا اسکریپت چیست؟

زبان Java Script که به اختصار JS نیز به آن میگویند یک زبان مفسری، داینامیک و شیءگرا است که در سراسر دنیا محبوبیت بسیار بالایی دارد. چرا به زبان برنامه نویسی جاوا اسکریپت یک زبان همه فن حریف میگویند؟ چون با استفاده از این زبان برنامه نویسی شما قادر خواهید بود تا با آن برنامه نویسی سمت سرور، بازی، اپلیکیشن های موبایل و دسکتاپ و یکسری از کار های امنیتی را انجام دهید.

جاوا اسکریپت (Java Script) یک زبان شیءگرا

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

شما میتوانید به سادگی و با عوض کردن چند تا از دستگاه هایتان شروع به ساخت محصول جدیدتان کنید. این دقیقا نمونه ای از شیء گرایی می باشد و در برنامه نویسی هم دقیقا به همین صورت است. در برنامه نویسی شیء گرا، زاویه دید برنامه نویس از پایین به بالا یا از جزء به کل است.

زاویه دید از پایین به بالا یا از جزء به کل یعنی چی؟ یعنی شما باید با ساختن جزییات و مرتبط کردن آن ها با همدیگه شروع به ساخت کل پروژه خود کنید. یعنی با ساخت قسمت های کوچک نرم افزار یا وب سایت باعث ایجاد کل پروژه خود شوید. در برنامه نویسی شیءگرا، برنامه نویس خیلی ساده تر میتواند اجزای پروژه خود را تغییر دهد. همچنین برنامه نویس خیلی ساده تر میتواند پروژه های نوشته شده به این صورت را درک کند.

در ادامه میخواهیم تا 10 مورد از ابزار ها و روش های امنیتی جاوا اسکریپت را به شما بگوییم، پس با ما همراه باشید.

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

ماژول Crypto در فریمورک Node.js

این ابزار امنیتی بیشتر برای رمز نگاری و رمز گشایی کاربرد دارد و یکی از ماژول های داخلی فریمورک Node.js است که شما میتوانید با استفاده از این فریمورک به ماژول کریپتو (Crypto) هم دسترسی داشته باشید و از آن استفاده کنید.

ماژول Crypto چیست؟

از جمله کاربرد های این ماژول قدرتمند میتوان به تولید هش ها، انجام عملیات های رمز نگاری و رمز گشایی داده ها، امضاهای دیجیتال و تولید شماره های تصادفی اشاره کرد که میتوانند به شما در زبان برنامه نویسی جاوا اسکریپت (Java Script) کمک های زیادی کنند.

میدل ورهای Helmet در فریمورک Express.js

شما با استفاده درست از این میدل ور ها می توانید هدر های HTTP خود را به گونه ای تنظیم کنید تا بتوانند از حملاتی مانند XSS و ... برای وب سایت شما محافظت کنند. این میدل ور ها را میتوانید با راه اندازی فریمورک Express.js در اختیار داشته باشید و از آن ها استفاده کنید.

از جمله کاربرد های این میدل ور ها میتوان به جلوگیری از حملات clickjacking و XSS و MIME-sniffing کاربرد دارد. البته این مورد را هم در نظر داشته باشید که شما باید این میدل ور ها را به درستی تنظیم کرده باشید تا بتوانند در برابر این نوع حملات از وب سایت شما محافظت کنند.

کتابخانه JsonWebToken (JWT)

شما میتوانید با استفاده از این کتابخانه زبان برنامه نویسی جاوا اسکریپت(Java Script) موارد مثل احراز هویت کاربرانتان را ایجاد و تنظیم کنید که میتواند به میزان قابل توجهی امنیت وب سایت های شما را بالا ببرد و ورود و خروج کاربران و احراز هویت آن ها را تنظیم کند.

کاربرد های قابل توجهی که این کتابخانه دارد این است که شما میتوانید با استفاده از این کتابخانه اقدام به ایجاد یا تنظیم احراز هویت کاربرانتان کنید، و یکی دیگر از کاربرد های مهم این کتابخانه این است که شما میتوانید با استفاده از این کتابخانه انتقال ایمن را برای اطلاعات در حال انتقال از کلاینت به سرور را رقم بزنید که برای بیشتر برنامه نویسان گزینه خیلی مهمی می باشد.

کتابخانه bcrypt.js

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

کاربرد هایی که این کتابخانه میتواند در موارد امنیتی داشته باشد، هش کردن پسورد ها و ذخیره آن ها با استفاده از الگوریتم اختصاصی bcrypt و افزایش امنیت آن ها می باشد که میتواند به شما در امنیتی پسورد هایتان کمک بسیاری کند.

کتابخانه DOMPurify

این کتابخانه میتواند به شما کمک کند تا بتوانید محتوای HTML وب سایت خود را پاکسازی یا فیلتر کنید تا دور از دسترس خرابکاران و هکران بماند. همین مسئله موجب می شود تا از حملاتی مثل XSS وب سایت شما در امان بماند.

کتابخانه DOMPurify چیست؟

همین که شما میتوانید محتوای HTML وب سایت خودتان را مخفی نگه دارید باعث می شود تا افراد مخرب نتوانند اسکریپت های مخرب را در قسمت هایی از سایت شما مثل ورودی کاربران، اجرا کنند و روند سایت شما را مختل کنند.

کتابخانه Validator.js

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

از دیگر امکاناتی که شما با استفاده از این کتابخانه از آن ها برخوردار می شوید می توان به اعتبار سنجی داده های ورودی مانند ایمیل یا URL یا تاریخ و در صورت نیاز ورودی های متنی را با استفاده از این کتابخانه حذف کنید و پاکسازی کنید.

مجموعه فیلتر های Xss-Filters

این مجموعه از فیلتر ها میتواند به شما این امکان را بدهد تا بتوانید فیلتر هایی را در کد های خود قرار دهید تا بتوانند در برابر حملات Cross-Site Scripting از وب سایتتان محافظت کنند و وب سایت شما را در برابر این حملات مقاوم کنند.

البته شما میتوانید با استفاده از این فیلتر ها ورودی های کاربرانتان را در برابر حملات XSS پاکسازی کنید تا نتوانند به آن ها دسترسی داشته باشند.

میدل ور Express-rate-limit

شما میتوانید با استفاده از این میدل ور کاری کنید تا تعداد درخواست ها را از یک IP محدود کنید و نگذارید تا یک IP برای مثال بیشتر از 10 درخواست به وب سایت شما ارسال کند.

شما با این کار در حقیقت دارید از حملات DDOS پیشگیری میکنید چون در حملات دیداس کاربر با ارسال فایل ها و درخواست های حجیم ترافیک وب سایت شما را اشغال کرده و باعث از کار افتادن خدمات شما میشود.

میدل ور CSURF

این میدل ور به شما قابلیت این را میدهد تا بتوانید در فریمورک Express.js از آن استفاده کنید و از حملاتی از قبیل CSRF (Cross-Site Request Forgery) از وب سایت یا نرم افزار خود محافظت کنید.

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

میدل ور HPP

این میدل ور وابسته به فریمورک Express.js می باشد و شما میتوانید با استفاده از این میدل ور از حملاتی مثل Parameter Pollution از وب سایت یا نرم افزار های خود محافظت کنید.

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

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

در ادامه به توضیح و شرح چند مورد از این حملات می پردازیم تا بتوانید درک بهتری از آن ها داشته باشید.

حملات XSS چیست؟

امروزه زبان برنامه نویسی جاوا اسکریپت به قدری قدرتمند شده است که میتواند هر کاری را به صورت خیلی جذاب انجام دهد، این کار ها میتوانند طراحی وب سایت، طراحی نرم افزار، افزودن انیمیشن های جذاب به وب سایت ها و... را انجام دهد.

حملات XSS چیست؟

اما از طرفی حملات XSS هم یکی از خطراتی است که میتواند این زبان برنامه نویسی را به شدت به خطر بیاندازد. در بالا تر روش هایی برای مقابله با این حمله را گفتیم اما الان میخواهیم به چیستی این حمله بپردازیم.

زمانی گفته می شود که حمله XSS یا Cross-site scripting انجام شده است که فرد هکر بتواند اسکریپت های مخرب را در مرورگر قربانی اجرا کند. در این حالت شخص مهاجم دسترسی کاملی بر روی وب سایت ندارد و تنها میتواند بخشی از سایت را کنترل کند اما برخی از این افراد با قرار دادن اسکریپت مخرب در اول سایت باعث می شوند تا مرورگر فریب خورده و با هر بار بارگزاری وب سایت، اسکریپت آن ها نیز اجرا میشود.

بیشتر بدانید: تفاوت HTML و CSS در چیست؟

حملات XSS دقیقا چطور کار میکنند؟

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

زمانی که شخص هکر اسکریپت خود را روی وب سایت شما قرار داد، حالا فرصت این را دارد تا بتواند از طریق مرورگر به سیستم شما نیز دسترسی داشته و اقدام به تخریب یا نفوذ به آن کند.

حملات CSRF چیست؟

در این حمله هنگام احراز هویت کاربر موردی تایید می شود که توسط کاربر و یا به خواسته کاربر نبوده اما از نظر وب سایت ارائه دهنده خدمات این خواسته کاربر بوده است.

اگر بخواهیم با مثال این مورد را تعریف کنیم میگوییم که شما توسط یک هکر مورد حمله CSRF یا Cross Site Request Forgery مورد حجوم قرار گرفته اید و داخل یک وب سایت هم احراز هویت شدید. حالا شخص هکر میتواند از حساب شما در آن وب سایت که احراز هویت شده اید درخواست هایی بدهد که توسط شما ارسال نشده اما وب سایت فکر میکند که کاربر معتبر این درخواست ها را ارسال کرده است.

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

سخن پایانی

در این مقاله قصد داشتیم تا شما را با روش ها و ابزار هایی که میتوانید با استفاده از آن ها امنیت را در جاوا اسکریپت خود به ارمغان بیاورید را بگوییم و دو مورد از مهم ترین روش های حمله را برای شما گفتیم تا بتوانید درک بهتری از این حملات داشته و در برابر آن ها مقاوم تر باشید.


نظرات