آکادمی امنیت شبکه و اطلاعات

  • امروز 05، تیر 1398 می‌باشد.
  • 989901416229+

نقشه راه زبان های برنامه نویسی

ارسال شده توسط : MrPenTester


ارسال شده در تاریخ : 22، فروردین 1398 - 18:00:06


تصویر پیدا نشد

با سلام خدمت شما همراهان گرامی

 

در ادامه ارائه مسیر راه دوره ها، در این قسمت به بحث برنامه نویسی می رسیم

 

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

 

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

 

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

 

در این نقشه ما ابتدا دو زبان برنامه نویسی ++C و Python را بعنوان شروع خواهیم داشت.

 

سپس براساس علاقه و زمنیه ای که می خواهید فعالیت کنید، 6 مسیر و زمینه خواهیم داشت که به ترتیب عبارتند از :


Functional Programming
Fundation Of Database
Web
Client
Network
Mobile

 

که هر کدام از مسیر ها پیشنهادهای خود را خواهند داشت.

 

 

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


سی پلاس پلاس (C++) یکی از زبان‌های برنامه‌نویسی پرکاربرد، همه منظوره و شیء گرا است که علاوه بر دارا بودن ویژگی‌های عمومی برنامه‌نویسی، امکان دستکاری سطح پایین حافظه را نیز فراهم می‌آورد. از همین رو سی پلاس پلاس را یک زبان سطح میانه (یا ترکیبی) می‌دانند چرا که برخی از ویژگی‌های زبان‌های سطح پایین و زبان‌های سطح بالا را به طور همزمان در خود جای داده است.

 

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

ویژگی‌هایی چون شئ گرایی، وراثت، چندریختی، سربارگذاری عملگرها، مدیریت استثنائات و … از جمله ویژگی‌هایی است که علاوه بر قابلیت‌های به ارث برده شده از زبان سی در سی پلاس پلاس به چشم می‌خورد.

 

امروزه زبان سی پلاس پلاس همانند سی با اهداف متمایل به برنامه نویسی سیستمی و جاسازی شده (Embedded)، مورد استفاده‌ی فراوان توسعه‌دهندگان قرار می‌گیرد. به علاوه، کارایی و همچنین انعطاف‌پذیری بالای این زبان برنامه نویسی آن را به گزینه‌ی بسیار مناسبی برای توسعه‌ی اپلیکیشن‌های دسکتاپ و همچنین مواردی که به کارایی و عملکرد بالایی نیاز دارند تبدیل کرده است.

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

اگر بخواهیم نمونه و مثال در زمینه کاربرد سی پلاس پلاس در وب ارائه دهیم باید به سایت های فیسبوک و گوگل  و حتی تلگرام اشاره کنیم. هسته این وبسایت ها توسط سی پلاس پلاس پیاده سازی شده است تا در لایه های بالاتر عملیات پردازش در حد پاس کردن به لایه زیرین و پردازش توسط سی پلاس پلاس‌‌‌‌‌‌‌‌‌‌‌‌‌‎ صورت بگیرد تا سرعت انتقال اطلاعات به صورت بسیار چشمگیری افزایش می یابد که می توان به برخی از آن ها اشاره کرد که در نهایت منجر به مدیریت منابع و کاهش فشار سرور میشود.

*سوال؟
حالا چرا زبان سی یا سی پلاس پلاس رو در مرحله اول برای یادگیری برنامه نویسی گذاشتیم؟!
فردی که میخواهد وارد زمینه برنامه نویسی شود بهتر است ابتدا با یک زبان سطح پایین شروع کند تا اصول و syntax برنامه نویسی را در حالت کلی یاد بگیرد سپس اگر به سمت زبان های قدرتمند و سطح بالا (...& Python & Ruby)  رفت بتواند راحتتر و بهتر انها را یاد بگیرد .

 

---------------------------------------------------------

 

پایتون یک زبان برنامه نویسی چند منظوره و قدرتمند، که توسط خودوفان روسوم هلندی در سال ۱۹۹۱ طراحی شده است. پایتون یک زبان اسکریپتی و بسیار قدرتمند و گسترده هستش و این روزها می توانید آثاری از نفوذش رو تقریبا همه جا ببینید.


 پایتون در دنیا به شدت همه گیر شده است. زبان برنامه نویسی پایتون یک زبان شی گرا است و از ویژگی های پیشرفته شی گرایی مثل : وراثت، چندشکلی، سربار گزاری عملگر و . . . پشتیبانی میکند.

 

منظور از اسکریپتی بودن پایتون چی است ؟

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

 

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


پایتون یه زبان سطح بالا و شی گرا و تفسیری سمت سرور است.


پایتون به صورت opensource توسعه یافته است.

 

پایتون سه قابلیت اصلی دارد :


1-سهولت بیشتر
2-فهم راحت تر
3-توسعه ی سریع تر

 

در حقیقت پایتون به قدری سطح بالاست که برنامه نویسی را برای ما دلچسب می کند.


پایتون دارای کتابخانه های بسیار وسیعی است که یادگیری و استفاده ی آن ها در چند روز ممکن است.


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


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

 

هدف از بوجود آمدن زبان برنامه نویسی پایتون :

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

 

یکی از مزیت های زبان برنامه نویسی پایتون این است که از مدل های مختلف برنامه نویسی مثل شی گرایی، برنامه نویسی دستوری و تابع محور پشتیبانی میکند و برای مشخص کردن نوع متغییرها از یک سامانهٔ پویا استفاده می‌کند.

 

کاربرد پایتون در زمینه های مختلفی است که میتوان به موارد زیر اشاره کرد :

    آنالیز داده‌ها - یادگیری ماشینی - خودکارسازی سامانه‌ها - توسعه وب
    واسط‌های برنامه‌نویسی - تحلیل داده‌های بزرگ در علوم و صنایع - امنیت سایبری و تست نفوذ


*سوال در حالت کلی ویژگی های پایتون چیه؟؟

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

 

---------------------------------------------------------

 

یکی از زبان های معروف و کاربردی در حوزه وب، زبان برنامه نویسی php است، PHP  شی گرا برای طراحی وب می باشد.


درواقع PHP یک زبان برنامه نویسی اسکریپتی اپن سورس Open Source و سمت سرور ( Server Side ) است.

 

وقتی میگوییم سمت سرور است یعنی این که صفحات PHP در مرحله اول توسط سرور Apache یا IIS پردازش می شوند، سپس در مرحله دوم خروجی به صورت کدهای HTML و JavaScript به مرورگر کامپیوتر کاربر ارسال میگردد. به همین دلیل به PHP، زبان سمت سرور میگویند.

ساختار زبان PHP بسیار شبیه به زبان C و در نسخه های جدبد شبیه به جاوا می باشد و به همین دلیل از محبوبیت فراوانی برخوردار است. از مشهورترین مدیریت محتوای های ساخته شده با PHP می توان به جوملا، وردپرس ، دروپال و … اشاره نمود. سایت های فراوانی در جهان براساس زبان PHP نوشته شده اند و هر روز نیز بر تعداد آنها افزوده می شود. بر طبق آمار منتشر شده بیش از ۶۰% از سایت های موجود در سرورها با زبان PHP نوشته و بارگذاری شده است که از مهمترین آنها می توان به ویکی پدیا،فیسبوک اشاره کرد.


PHP امکان استفاده از انواع مختلفی از پایگاه داده را از جمله : MySQL,SqlLite,Oracle, IBM DB2, Microsoft Sql Server و … را با دستور هایی ساده فراهم می سازد.PHP روی بیشتر سیستم عامل های معروف از جمله : Linux,Windows,FreeBSD,Mac,Unix و با اغلب سرور های معروف قابل اجراست.

پیش از آغاز به یادگیری PHP شما باید آشنایی کافی با  HTML و Java Script و کار با MySQL را بدانید.

 

حالا به مزیت های و کاربرد زبان PHP بپردازیم و ببینیم چه مزایایی دارد:

 

 زبان php یک ابزار ساخت یافته بوده و یادگیری آن بسیار ساده است.
ابزار کار با PHP همگی اوپن سورس بوده و استفاده از آن رایگان هستند.
سرعت بالا؛ اجرای یک اسکریپت PHP به طور متوسط تا سه برابر یک اسکریپت ASP است.

مفسر PHP تنها کدهایی که در درون جداکننده PHP قرار بگیرند را تفسیر می کنند. معروف ترین این جداکننده ها PHP?> برای ابتدا و <؟ برای انتها استفاده می شوند. نام متغییر در زبان PHP حتما باید با نماد $ آغاز شود و نیازی به مشخص کردن آن نیست. برخلاف نام توابع و کلاس ها نام متغییرها به بزرگی و کوچکی حساس هستند.

خطوط جدید و فاصله نادیده گرفته می شوند البته به جز فاصله هایی که در درون رشته ها قرار داشته باشد و تمامی دستورات این زبان با علامت  ; پایان می یابد. در زبان PHP به ۳ صورت متفاوت می توان کامنت (توضیحات) گذاشت.

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

بنابراین شما بعد از یادگیری این زبان میتوانید به تحلیل باگ هایی همچون
  Authentication Bypass,RFI,CSRF,LFI,...
بپردازید و توسط زبان پایتون این اسیب پذیری ها را اکسپلویت کنید

 

---------------------------------------------------------

 

جاوااسکریپت یکی از زبان‌های اصلی برنامه نویسی مورد نیاز برای ورود به دنیای وب است. به‌ خصوص که امروزه جاوااسکریپت گسترش و پیشرفت بسیار زیادی داشته و با فریمورک‌های قدرتمندی همچون Angular، React Js، Vue Js Node , React native و ... دراکثر پروژه‌ها مورد استفاده قرار میگیرد.

 

یکی از مزایای جاوا اسکریپت، فریم‌ورک‌ها و کتابخانه‌هایی است که بر پایه این زبان شکل گرفته‌اند. کتابخانه هر زبان برنامه نویسی، در واقع مجموعه‌ای از دستورات آن زبان است که در قالب خلاصه و آماده برای استفاده قرار می‌گیرد. یکی از مشهورترین و نام‌آشناترین کتابخانه‌های جاوا اسکریپت، Jquery است. جی‌کوئری در واقع مجموعه‌ای از دستورات پیچیده‌ی جاوااسکریپت است که به‌صورت بسیار ساده و آسان در اختیار همه قرار دارد. جی‌کوئری این امکان را به شما می‌دهد که بجای کدنویسی طولانی، کدهای خود را در یک یا چند سطر خلاصه کنید با استفاده از جی‌کوئری می‌توانید بجای کدنویسی طولانی از مزیت‌های جی‌کوئری برای مثال این است که برای یک کار اگر باید ده خط کد جاوا اسکریپت بنویسید، با استفاده از یک متد یک خطی جی‌کوئِری می‌توانید همان کار را با کیفیت و دقت بالا انجام دهید.

 

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

 

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


1- ReactJS که بسیاری از سایت‌ها و سرویس‌های بزرگ بر پایه‌ی این فریمورک توسعه داده‌ شده‌اند.
2- React Native محصول شرکت فیسبوک که به کمک آن با جاوااسکریپت میتوان برنامه IOS , Android را هم زمان نوشت.
3- فریم ورک AngularJs گوگل که آخرین نسخه آنangular 7 است و بسیاری از ابزارها و سرویس‌های بزرگ بر پایه‌‌ی آن توسعه داده‌ شده‌اند.
4-فرم وورک قدرتمند و در عین حال کم حجم vue js که سمت فرانت اند را در اختیار میگیرد و هنگام ترکیب با فرم وورک لاراول در زبان PHP میتوان سایت های خوبی را ساخت.
5- node js که امکان استفاده از جاوا اسکریپت در سمت سرور را ایجاد میکند
6- فرم وورک Electron js که امکان ساخت اپلیکیشن های دسکتاپ با قابلیت اجرا روی ویندوز، مک و لینوکس را دارد.
7- یکی دیگر از نقاط قوت جاوا اسکریپت استفاده از آن در پردازش تصویر است که با استفاده از webgl , three js امکان ایجاد پروژه های مربوط به پردازش تصویر را به شما می دهد.

 

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


به این صورت که با این زبان میتوان انواع وب اپلیکیشن را نوشت و همچنین امنیت وب اپلیکیشن ها را با استفاده از این زبان فراهم نمود.


اکثر برنامه نویس ها و توسعه دهنده های حرفه ای در سطح جهان عقیده دارند که جاوا اسکریپت قدرت بی نظیری در زمینه برنامه نویسی و توسعه را دارا است  و با توجه به تحلیل های خود جاوا اسکریپت را به عنوان زبان آینده معرفی کرده اند.
 

 

نویسنده: حامد مقدسی پور و گروه متخصصین نقشه راه فناوری اطلاعات

منبع: آکادمی امنیت شبکه و اطلاعات و گروه ITROADMAP

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده غیر اخلاقی می باشد.

 

 





کلیه حقوق برای آکادمی امنیت شبکه و اطلاعات محفوظ بوده و برداشت غیر مجاز پیگرد قانونی دارد | Copyright © 2019 Iranian AcademySecurity.ir All rights reserved