۴-۶ روشهای بهینهسازی دقت در ADC هنگام استفاده از سنسورها با خروجی ولتاژ
اگر فرض کنیم که یک سنسور با خروجی ولتاژ به یک ورودی ADC میکروکنترلر وصل شده است در هنگام کار با این سنسورها خواهید دید حتی در حالتی که شما در ورودی مدار تغییر خاصی را اعمال نمیکنید مقدار ADC همواره درحال نوسان است. مثلا برای سنسور IR حتی اگر جسم را ثابت نیز نگهدارید اندکی تغییر در نور محیط باعث بروز اعداد متفاوت در خروجی ADC میشود. برای از بین بردن این نوع خطاها که در الکترونیک به آنها نویز نیز میگویند میتوان از روشهای هوشمندانه در کد نویسی خود برای سنسورها بهره ببرید.
یکی از این روشها روش میانگینگیری است.
به قطعه کد زیر نگاه کنید:
در این قطعه کد در یک حلقه ۲۰ بار مقادیر ADC از پین A.0 در میکروکنترلر ATmega32 به فواصل ۱ میلیثانیه خوانده شدهاند و تمام مقادیر با هم جمع شدهاند. در نهایت پس از اتمام حلقه میانگین این مقادیر حساب شده و در نهایت ما با این عدد از این پس به عنوان نتیجهی عمل ADC کار خواهیم کرد.
در این عدد جدید اثر نویز تقربیا کمتر شده و میتوان گفت اثرات نویزهای لحظهای تقریبا به صفر رسیده است. هرچه تعداد نمونههایی که در این میانگینگیری شرکت میدهید بیشتر باشد دقت شما بیشتر خواهدبود. اما در این روش عیبی که وجود دارد این است که ما زمان را فدای دقت کردهایم چراکه برای نهایی سازی هرنمونهی گرفته شده از ADC به ۲۰ میلی ثانیه احتیاج داریم که زمان قابل توجهی است.
میتوان کد بالا را به شکل زیر گسترش داد:
در واقع در کد بالا میزان ولتاژ پس از میانگینگیری از ۲۰ نمونه بدست آمده که از دقت بسیار بالاتری نسبت به یک نمونه برخوردار است محاسبه میشود.
همچنین روشهای دیگری برای افزایش دقت ADC همچون استفاده از Kalman Filtering وجود دارد که در اینجا ما قصد ارائه توضیحات را نداریم.
آموزش کامل پروگرام کد های آردوینو روی ATMEGA8
یکی از مزیت های بزرگ آردوینو عدم نیاز آن به پروگرامر میباشد. شما براحتی میتوانید برنامه نوشته در Arduino IDE را برروی بورد آردوینو پروگرام کنید. مشکل اصلی از جایی شروع میشود که استفاده از این بورد از نظر ابعاد و قیمت در پروژه شاید کار زیاد جالبی بنظر نیاید. پس چاره چیست؟ برد های آردوینو بدلیل اُپن سورس بودن و محیط برنامه نویسی (Arduino IDE) نیز بخاطر ساده بودن و دستورات راحت آن همواره طرفدار های زیادی را جذب خود کرده است. یکی از مواردی که جالب بنظر میرسد این است که شما میتوانید با روش هایی، کد نوشته شده در این نرم افزار را مستقیما بر روی یک میکروکنترلر مانند ATMEGA8 پروگرام کنید.
یکی از این روش ها، استفاده از کد HEX برنامه نوشته در نرم افزار آردوینو میباشد. و در نهایت با استفاده از پروگرامر نسبت به پروگرام کردن میکروکنترلر خود اقدام نمایید. یکی دیگر از این روش ها، استفاده از بوت لودر میباشد. این که بوت لودر چیست و چه کاربردی دارد از حوصله بحث خارج است و از توضیح این مورد، خودداری میکنم. پس برای فهمیدن و نحوه اجرای این روش با من تا انتهای مطلب همراه باشید.
شرح آموزش
بطور کلی در این روش، ابتدا توسط یک بورد آردوینو بوت لودر مربوط را برروی ATMEGA8ریخته و بعد از انجام تنظیماتی در نرم افزار، توسط یک مبدل سریال میکروکنترلر ATMEGA8 را از این پس میتوانیم پروگرام کنیم. به این نکته توجه داشته باشید که این آموزش برای میکروکنترلر های سری ATMEGA8 (ATMEG8, 48, 88, 168, 328) مورد استفاده میباشد. من در این آموزش از بورد Arduino UNO و ATMEGA8 استفاده کرده ام.
در تصویر زیر مشخصات پایه های میکروکنترلر را ملاحظه میکنید. به این نکته توجه کنید که وقتی در محیط برنامه نویسی آردوینو مثلا دستور “(HIGH, 8)digitalWrite” را مینویسیم، منظور این است پایه شماره 8 دیجتال، فعال یا یک منطقی شود. این پایه برروی برد آردوینو مشخص شده است. اما روی آیسی اتمگا 8 مد نظر ما پس از ریختن بوت لودر در این آموزش، منظور پایه 14 آیسی خواهد پس به این نکته مهم توجه کنید.
مشخصات کد فیلتر نویسی پین بار پایه آردوینو ATMEGA8
برای اینکه فریمور آردوینو رو روی اتمگا 8 آپلود کنیم، در اولین مرتبه، نیاز به یک پروگرامر (مانند USB ASP) داریم یا یک برد آردوینو (مانند UNO).
وسایل مورد نیاز
شماتیک
با استفاده از شماتیک زیر اتصالات بین بورد آردوینو و ATMEGA8 را برقرار نمایید.
شماتیک
بهتر است بین پایه 20 آیسی ATMEGA8 و GND یک خازن با ظرفیت 10 میکرو فاراد وصل نمایید.
مدار مونتاژ شده
نصب بوت لودر
بعد از بستن مدار بالا، به مرحله کد نویسی خواهیم رفت. در مرحله اول از این لینک سورس کد مربوطه را دانلود کرده و در نرم افزار آردوینو آن را باز کنید. در این مرحله قصد داریم تا بوت لودر را بر روی ATMEGA8 پروگرام کنید.
بعد از باز کردن سورس کد (optiloader.ino)، حتما در بخش ابتدایی برنامه define های مربوطه را بررسی کنید و متناسب با نوع بورد آردوینو خود و نحوه سیم بندی شماتیک خود در صورت نیاز آن را تغییر دهید. مثلا اگر در این آموزش پایه ریست میکرو را به پایه دیجیتال 10 بورد ARDUNI UNO متصل کردیم پس باید در سورس نیز 10 باشد که البته همین هست. یا مثلا برای بورد آردوینو مگا 2560 باید سه قسمت SCK، MOSI و MISO را متناسب با شماره پایه های مربوط به آن تغییر دهید. ولی ریست را به هر کدام از پایه که وصل کردیم همان را مینویسم مثلا پایه 10.
سورس کد
بعد از طی مراحل بالا و انتخاب شماره پورت و نوع بورد خود، برنامه را روی آردوینو آپلود کرده و تا موقعی که “Done Uploading” نمایش داده شود صبر میکنیم. بعد از انجام این مرحله و موفقیت آمیز بودن آپلود برنامه، سریال مانیتور آردوینو را باز کنید.
در ابتدا باودریت سریال مانیتور را روی “19200” تنظیم نموده و یکبار دکمه ریست آردوینو را بزنید. بعد از این کار اطلاعاتی را مانند تصویر زیر در سریال مانیتور مشاهده خواهید کرد که نشان دهنده این است که بوت لودر روی اتمگا 8 با موفقیت نصب شده است.
برای اطمینان در سریال مانیتور یک بار حرف “G” را تایپ و اینتر مینزنیم و مجدد نتیجه را بررسی میکنیم. یا اگر خواستید برروی یک ATMEGA8 دیگر نیز بوت لودر نصب کنید، میتوانید آن را جایگزین ATMEGA8 فعلی کنید و حرف “G” را ارسال کرده و منتظر بمانید تا بودت لودر روی آن پروگرام شود.
اطلاعات خروجی
پروگرام کردن میکروکنترلر
در مرحله قبل، بوت لودر را روی ATMEGA8 نصب کردیم .بعد از انجام این مرحله، شما میتوانید برنامه مورد نظر خود را مثلا برنامه LED چشمک زن ساده آردوینو را روی میکروکنترلر ATMEGA8 پروگرام کنیم. پس طبق مراحل زیر عمل کنید.
مرحله اول: تنظیمات نرم افزار Arduino IDE
در اولین گام به منوی Files > Preferences وارد شوید. و در مکان مشخص شده لینک زیر را کپی و پیست کرده و برروی OK بزنید.
اضافه کردن لینک دانلود پکیج minicore
حالا از منوی Tools > Board > Boards Manage را کلیک کنید، در ابتدا از اتصال به اینتنرت مطمئن شوید. در پنجره نمایش داده شده عبارت “minicore” را سرچ کنید. طبق تصویر زیر روی گزینه install بزنید و منتظر بمونید تا نصب پکیج بصورت کامل انجام شود.
دانلود پکیج minicore
طبق توضحیات ارائه شده، این پکیج مناسب برای آیسی های ATMEGA328, 168, 48, 88, 8 میباشد.
بعد از انجام این مرحله وارد منوی Tools > Boards شده و از بین بورد های موجود با اسکرول کردن به پایین در قسمت MiniCore، آیسی مورد نظر را برای پروگرام کردن انتخاب کنید. که ما در این مطلب چون از ATMEGA8 استفاده میکنیم پس همین مورد را انتخاب خواهیم کرد.
انتخاب آیسی از MiniCore
بعد از انتخاب ATMEGA8، مجدد به منوی Tools مراجعه میکنیم . طبق تصویر زیر مشاهده میکنید که چند قسمت جدید به این منو اضافه شده است که در ادامه آنها را بررسی خواهیم کرد.
از بخش Clock میتوانیم مشخص کنیم از چه روشی کلاک پالس میکروکنترلر را تامین میکنیم. مثلا داخلی با فرکانس 1MHz یا خارجی با فرکانس 16MHz و … . (شخصا خواستم بدون کریستال خارجی هم تست کنم یعنی کریستال خارجی وصل نکنم و از اسیلاتور داخلی میکرو استفاده کنم، اما این کار ممکن نبود.)
بخش BOD مربوط به تنظیمات فیوز بیت BOD هست که مشخص میکنه چه زمانی میکرو ریست شود. مثلا اگر 2.7V انتخاب کنیم وقتی ولتاژ ورودی کمتر از این مقدار باشه میکرو ریست خواهد شد. یا اگر 4V رو انتخاب کردیم، اگر ولتاژ ورودی کمتر از 4 ولت بود میکرو را ریست خواهد شد.
بخش Compile LTO میتوانیم انتخاب کنیم که عمل پروگرام کردن سریع تر باشد یا خیر. اگر Disable که بصورت پیشفرض همین مورد انتخاب شده است را انتخاب کنید، عمل پروگرام کردن مدت زمان بیشتری نسبت به حالت Enable خواهد داشت. Enable برای زمانی است که بخواهیم سریع تر عمل پروگرام انجام شود.
مرحله دوم: تنظیمات و فراهم کردن سخت افزار
برای انجام عمل پروگرام کردن ابتدا طبق جدول زیر اتصلات را برقرار کنید.
ATMEGA8 | مبدل USB به سریال |
Reset | CTR |
TX | RX |
RX | TX |
VCC | VCC |
GND | GND |
مدار مونتاژ شده:
مدار مونتاژ شده برای انجام پروگرام
نکته عملی: در صورتی که مبدل سریال شما دارای DTR باشد، بین پایه DTR مبدل سریال و پایه ریست اتمگا، از مدار زیر استفاده کنید.
شماتیک
همچنین نحوه اتصال کریستال 16MHz مشابه مراحل قبل (طبق بخش “شماتیک”) میباشد و بهتر است بین پایه 20 آیسی ATMEGA8 و GND یک خازن با ظرفیت 10 میکرو فاراد وصل کنید.
نکته عملی و خیلی مهم:
اگر مبدل سریال شما پایه DTR ندارد، در مدار تصویر بالا، خازن 100nF را حذف کنید. و هنگام آپلود کد یک لحظه پایه RESET میکروکنترلر را بصورت دستی به GND وصل کنید (پین دیگر مقاومت 10K). برای اینکار میتونید از یک پوش باتن استفاده کنید و یک طرف را به پایه ریست میکرو و طرف دیگه اش رو هم به زمین وصل کنید.
برای انجام این مورد چه بصورت دستی و چه از طریق کلید فشاری، هنگامی که در محیط کد فیلتر نویسی پین بار نرم افزار آردوینو گزینه آپلود را بزنید برنامه شروع به Compile شده و عبارت مربوطه نمایش داده خواهد شد. بعد از طی مرحله Compile وارد مرحله Uploading خواهید شد. درست در همین موقع و بلافاصله بعد از نمایش عبارت Uploading دقیقا در همین زمان ، یک لحظه کوتاه پایه ریست میکرو کد فیلتر نویسی پین بار را به GND وصل کنید یا پوش باتنی را که اضافه کرده اید را فشار دهید. در نهایت منتظر بمونید تا برنامه به درستی و کامل پروگرام شود.
بعد از اعمال تنظیمات مد نظر، مبدل سریال را به پورت USB و مدار مونتاژ شده وصل کنید. و در نرم افزار آردوینو از منوی Tools وارد قسمت Com شوید. پورتی که مبدل وصل است را انتخاب کنید. سپس برنامه زیر را در Arduino IDE بنویسید:
بعد از نوشتن برنامه فوق، ابتدا یک LED بین پایه 13 دیجیتال (پایه شماره 19 میکروکنترلر ATMEGA8) وصل نمایید. طبق توضیحات بخش قبلی ( مرحله اول ) شروع به انجام تنظیماتِ کد فیلتر نویسی پین بار انتخاب آیسی از منوی Boards و پروگرام کردن میکروکنترلر خواهیم کرد.
در نهایت با بررسی مجدد تنظیمات و شماره پورت مربوطه، دکمه آپلود در نرم افزار آردوینو (Ctrl + U) را میزنیم. با این کار عمل پروگرام آغاز خواهد شود. چناچه مبدل شما دارای پایه DTR میباشد و بین پایه ریست کد فیلتر نویسی پین بار و DTR خازن قرار ندهید، برنامه پروگرام نخواهد شد و ارور دریافت خواهید کرد.
در نهایت با آپلود کامل برنامه بر روی میکروکنترلر، مشاهده خواهید کرد که LED متصل به پایه دیجیتال 13، هر یک ثانیه چشمک خواهد زد.
نکته: در صورتی که مبدل سریال شما فاقد DTR میباشد، طبق توضیحات بخش قبل در هنگام پروگرام کردن عمل کنید.
امیدوارم از این آموزش کمال بهره را برده باشید. در صورتی که هرگونه نظر یا سوال داشتید درباره این آموزش لطفا اون رو در انتهای همین صفحه در قسمت دیدگاه ها قرار بدید. در کوتاه ترین زمان ممکن به اون ها پاسخ خواهم داد. اگر این مطلب براتون مفید بود، اون رو حتما به اشتراک بگذارید. همینطور میتونید این آموزش را پس از اجرای عملی توی اینستاگرام با هشتگ microelecom# به اشتراک بگذارید و پیج مایکروالکام (microelecom@) رو هم منشن کنید.
آموزش اندیکاتور پین بار HI Pinbar برای متاتریدر ۴ و ۵
اندیکاتور پین بار HI Pinbar یک اندیکاتور در ظاهر ساده، اما بسیار کاربردی بوده که برای پلتفرم معاملاتی متاتریدر توسعه یافته است. HI Pinbar سعی می کند Pinbars (که به آن “Pin-bar” یا “Pin bar” نیز گفته می شود) را تشخیص داده و با قرار دادن علامت “صورت خندان” در زیر Pinbars های صعودی و بالای Pinbars های نزولی، آنها را علامت گذاری کند.
اندیکاتور پین بار یک اندیکاتور فارکس بوده که از هیچ شاخص فنی استاندارد در کد خود استفاده نمیکند. پیکربندی تشخیص Pinbar را میتوان از طریق پارامترهای ورودی نشانگر انجام داد. اندیکاتور Pinbar میتواند هشدارهای پلتفرم و هشدارهای ایمیل را در مورد شناسایی کد فیلتر نویسی پین بار صادر کند. این نشانگر برای هر دو نسخه MT4 و MT5 از بستر معاملاتی در دسترس است.
تنظیمات اندیکاتور پین بار HI Pinbar
CountBars (پیش فرض = ۰) – حداکثر تعداد میله ها که می توان نوارهای پایه را در آن تشخیص داد. ۰ = همه.
DisplayDistance (پیش فرض = ۵) – فاصله شمع ها تا نمادهای “صورت خندان” از نوار سنجاق.
UseAlerts (به طور پیش فرض = درست) – به نشانگر می گوید که با تشخیص پین بار هشدار نرم افزاری را با صدا صادر می کند.
UseEmailAlerts (پیش فرض = نادرست) – به نشانگر می گوید تا در تشخیص پین بار هشدار ایمیل ارسال کند. ایمیل باید به درستی در MetaTrader از طریق Tools-> Options-> Email پیکربندی شود.
UseCustomSettings (پیش فرض = نادرست) – به نشانگر میگوید از پارامترهای تشخیص پین بار سفارشی که در زیر توضیح داده شده استفاده کند.
CustomMaxNoseBodySize (پیش فرض = ۰٫۳۳) حداکثر نسبت بدن / طول مجاز برای نوار بینی.
CustomNoseBodyPosition (پیش فرض ۰٫۴) بدنه باید در قسمت بالایی (پایین برای الگوی نزولی) نوار قرار بگیرد.
CustomLeftEyeOppositeDirection (پیش فرض = درست) به این شاخص اشاره می کند که نوار سمت چپ باید برای Pinbar صعودی نزولی باشد ، و برای Pinbar نزولی نزولی باشد.
CustomNoseSameDirection (پیش فرض = درست) به نشانگر می گوید که نوار بینی باید از همان جهت همان الگو باشد.
CustomNoseBodyInsideLeftEyeBody (پیش فرض = نادرست) به اندیکاتور می گوید که بدن بینی باید در داخل بدنه کندل چپ باشد.
CustomLeftEyeMinBodySize (پیش فرض = ۰٫۱) حداقل اندازه بدن چپ چشم نسبت به طول کد فیلتر نویسی پین بار میله.
CustomNoseProtruding (پیش فرض = ۰٫۵) حداقل برآمدگی میله بینی نسبت به طول میله.
CustomNoseBodyToLeftEyeBody (پیش فرض = ۱) حداکثر اندازه بدن بینی نسبت به بدن چشم چپ.
CustomNoseLengthToLeftEyeLength (پیش فرض = ۰) حداقل طول بینی نسبت به طول چشم چپ.
CustomLeftEyeDepth (پیش فرض = ۰٫۲) حداقل عمق چشم چپ نسبت به طول آن عمق طول قسمت میله پشت بینی است.
مثال کاربردی از اندیکاتور پین بار Pinbar
شما پس از نصب اندیکاتور پین بار، در چارت خود مشابه تصاویر فوق پینبارهایی که نمایش دهنده روندهای صعودی هستند را با رنگ سبز و شکلک سبز مشاهده میکنید و روندهای نزولی را با رنگ قرمز و شکلک قرمز مشاهده میکنید. برای بدست آوردن بهترین تنظیمات برای این اندیکاتور شما مطابق توضیحاتی که در بالاتر داده شد میتوانید تنظیمات را تغییر دهید تا به نتیجه مطلوب برسید.
دقت داشته باشید این اندیکاتور به تنهایی معیار خوبی برای ترید کردن نیست
و باید از آن در کنار دیگر اندیکاتورها یا استراتژی ها مورد استفاده قرار بگیرد
دانلود اندیکاتور HI Pinbar برای متاتریدر ۴
دانلود اندیکاتور پین بار برای متاتریدر ۵
آموزش نصب اندیکاتور در متاتریدر ۴
برای نصب اندیکاتور در متاتریدر ابتدا از سر برگ متاتریدر روی File کلیک کنید. سپس از منوی باز شده منوی Open Data Folder را انتخاب کنید، برای نصب اندیکاتور پوشه MQL4 را باز کنید و سپس در پوشه اندیکاتور را کپی و پیس کنید. حالا متا تریدر خودتون رو ببندید و مجدد باز کنید. در منوی مربوطه میبینید که اندیکاتور در لیست اندیکاتورهای شما اضافه شده است، کافی است در متاتریدر روی آن دو مرتبه کلیک کنید تا فراخوانی شده و روی چارت قرار بگیرد.
اگرچه اندیکاتور پین بار بسیار قدرتمند بوده و میتواند برای تریدرها مفید باشد، اما توصیه میکنیم که حتما ابتدا لیست سایر اندیکاتورهای فارکس را مشاهده کنید و از ترکیب Pinbar با حداقل یک اندیکاتور دیگر استفاده کنید تا استراتژی معاملاتی بهتری داشته باشید.
کد فیلتر نویسی پین بار
خبرگزاری فارس که به گفته برخی توسط اصول گراهای نزدیک به یک نهاد نظامی اداره.
به نظر می رسد سیاست مسدود کردن پیام رسان ها و شبکه های اجتماعی خارجی و اختلال.
انجمن صنفی کسب کارهای اینترنتی علیه قطع اینترنت اطلاعیه ای صادر کرد.
پس از اینکه گروه هکری انانیموس رسماً مسئولیت حمله به سایتهای دولتی را بر عهده.
خبرهای مهم
انجمن صنفی کسب کارهای اینترنتی علیه قطع اینترنت اطلاعیه ای صادر کرد.
مطالب آموزشی
کشف کنید
نحوه حذف پس زمینه عکس در iOS 16
راه حل های شارژ سریع و اضطراری گوشی
چطور با سرمایه کم و دانش کد فیلتر نویسی پین بار اقتصادی سود کنیم؟
هوش مصنوعی وبرنامه نویسی پلی به آینده
کلیک TV
نحوه انتقال eSIM از آیفون قدیمی به آیفون جدید
لرزش دوربین آیفون 14 در اپلیکیشن های شخص ثالث
سوئیت کوین | اپلیکیشنی که با پیاده روی به شما پول می دهد
در مراسم Far Out اپل و رونمایی از آیفون 14 چه گذشت؟
مسترکارت های آمریکایی به فناوری واقعیت افزوده مجهز شدند
سرخط آخرین خبرها
خبرگزاری فارس که به گفته برخی توسط اصول گراهای نزدیک به یک نهاد نظامی اداره.
به نظر می رسد سیاست مسدود کردن پیام رسان ها و شبکه های اجتماعی خارجی و اختلال.
انجمن صنفی کسب کارهای اینترنتی علیه قطع اینترنت اطلاعیه ای صادر کرد.
پس از اینکه گروه هکری انانیموس رسماً مسئولیت حمله به سایتهای دولتی را بر عهده.
در حالی که کار وزارت ارتباطات برای محدود کردن دسترسی کاربران به اخبار.
عیسی زارع پور در واکنش به احتمال حضور اینترنت ماهواره ای استارلینک در ایران.
جف گراب در ویدیوی اخیر Giant Bomb از معرفی نسخهی پنجم بازی The Sims در ماه اکتبر(9 مهر.
این بزرگترین اختلال در اینترنت ایران از سال ۲۰۱۹ است.» این بخشی از توئیت نت.
مایکروسافت امروز از نسخه جدید سیستم عامل خود با نام ویندوز 11 آپدیت 2022 رونمایی.
چند روز پیش، گزارشی از شکایت مردم نسبت به قیمتگذاری انحصاری شرکتهای تاکسی.
دلیل هک شدن سایت چیه + نکات امنیتی قبل، در حین و بعد از هک شدن!
قطعاً تا به حال با کلماتی مثل هک شدن سایت ، حملات سایبری و این دسته مشکلات برخورد داشتین. اینترنت با سرعت باورنکردنی در حال رشده. هر روزه یا بهتره بگیم هر دقیقه اطلاعات بیشتری نسبت به قبل به صورت آنلاین قرار میگیرن. مقدار قابل توجهی از دادههای توزیع شده آنلاین بسیار ارزشمند هستن، از جمله اطلاعات کارتهای اعتباری، اسرار تجاری، اطلاعات شخصی و جزئیات مربوط به Cryptocurrency یا همون ارز دیجیتالی.
کسب و کارها، دولتها و مصرف کنندگان هم برای انجام تمام فعالیتها وابسته به اینترنت هستن. ارزش معاملات انجام شده توسط اینترنت به میلیاردها دلار میرسه و تریلیون پرونده هر روز به صورت آنلاین مبادله میشه. خب چه فرصتی بهتر از این برای هکرها! با توجه به ماهیت سودآور بودن اینترنت، هکرها بسیاری از این معاملات رو مورد هدف خودشون قرار میدن.
هک شدن سایت از زمان ظهور اینترنت وجود داشته و مسئله ابتدایی نیست. مجرمان سایبری از ابزارها و تکنیکهای مختلفی برای دسترسی به اطلاعات حساس استفاده میکنن. اونها به وبسایت ها و منابع شبکه حمله میکنن تا داراییهای یک سازمان که هم میتونه شامل اطلاعات سری باشه و هم پول به سرقت ببرن. برای کد فیلتر نویسی پین بار محافظت از کسب و کار خودتون در برابر حملات سایبری، مهمه که بدونین هک شدن وبسایت چجوری اتفاق میفته، چه نشونههایی داره و نکات امنیتی برای مقابله با اون چیه.
هکرها چجوری یک سایت رو هک میکنن؟
بدون استفاده از برخی اقدامات ایمنی، هکرها به راحتی یک سایت رو هک میکنن. هکرها راههای بسیاری برای انجام این کار و به کنترل در آوردن یک سایت دارن:
- هکرها به راحتی رمز عبور وبسایت شما رو حدس میزنن. حتی برای این کار از یک سری نرم افزارها استفاده میکنن
- بدافزارهایی برای رایانه شما تعریف میکنن تا جزئیات ورود به سیستم رو دریافت کنن
- وب سایت های دیگهای که سرور با شما به اشتراک گذاشتن رو هک میکنن
چجوری بفهمیم که سایت ما هک شده؟
احتمالاً هر شخصی که با قسمت اجرایی سایت سروکار داره حداقل یک بار این سؤالها رو از خودش پرسیده که آیا وب سایت من هک شده؟ آیا اسکریپت اشتباه کار میکنه؟ به رسمیت شناختن جرائم سایبری و هک شدن سایت ، برای متخصصان این حرفه هم کار دشواریه چه برسه به بقیه افراد یا در مواردی حتی بعضی مدیران. یعنی رسماً شناسایی این اتفاقات برای افراد عادی تقریباً غیرممکنه. یک وب سایت به طور متوسط دو تا سه هزارتا فایل داره و بررسی کردن این فایلها به طور دستی امکان پذیر نیست. شما برای سردراوردن از اینجور مسائل، نه تنها باید مهندسی نرم افزار رو بلد باشین و درک کنین، بلکه باید تک تک فایلها رو چک کنین. این کار دقیقاً مثل جستجو یک اشتباه در یک کتاب با دو هزار صفحه است!
برخی عوامل وجود دارن که نشون میدن یک وب سایت هک شده و کدها تغییر پیدا کردن و تعدیل شدن:
- سایت شما به آرومی دانلود میشه
- وقتی که وبسایت خودتون رو باز میکنین، Firewall سیستم یک اخطار تحت عنوان “Threat (تهدید)” میده
- هنگامی که سعی میکنین از بعضی ماژولها استفاده کنین، وبسایت یک پیام خطا ارائه میده
- سایت شما دیگه از طریق سیستم جستجو ایندکس نمیشه
- در سایت ممکنه متوجه تصاویر یا صفحات و فایلهای کدگذاری شدهای بشین که به سایت شما هیچ ارتباطی ندارن یا شما در انجام اونها دخالتی نداشتین
- در پنل مدیریت متوجه حسابهای کاربری جدیدی با دسترسی مدیر میشین
- مشتریان شما هیچ ایمیلی رو نمیتونن از سمت شما دریافت کنن
اینها عواملی هستن که به روشنی نشون میده هک شدن وبسایت رخ داده.
همونطور که فناوریهای کامپیوتری، نرم افزارها وسیستمهای حفاظتی به طور دائم و پیوسته در حال توسعه پیدا کردن هستن، نرم افزارهای مخرب هم پیشرفت پیدا میکنن و هک شدن رو پیچیدهتر و دشوارتر میکنن. یعنی حل کردن مشکل سختتر میشه!
هک شدن سایت و دسترسی به اطلاعات
وبسایت ها معمولاً مستعد هک شدن هستن. هرچی وبسایت معروفتر، خطر هک شدن سایت بالاتر. مراحل مختلفی وجود داره که باید برای خلاص شدن از شر چنین موضوعاتی انجام بدین. اگر سایت شما هک شد، توصیه میکنیم قبل از انجام هر اقدامی به متخصصان حذف نرم افزارهای مخرب و ویروسها از سرور مراجعه کنین و برنامه حفاظت از وبسایت خودتون رو هرچی سریعتر دریافت کنین.
وظیفه اصلی شما پس از هک شدن اینه که همونطور که باید از ذخیره سازی امن اطلاعات خودتون اطمینان حاصل کنین، از امنیت اطلاعات کاربران سایت خودتون هم مطمئن بشین. به یاد داشته باشین که در صورت هک شدن سایت فقط کد مخرب به سایت شما وارد نمیشه، بلکه به احتمال زیاد پایگاه داده کاربران رو با تمام اطلاعات و تمامی رمزهای عبور از دست میدین. به نحوی که مجرمان میتونن هرزنامهها یا اسپمهای زیادی رو در سایت قرار بدن و رمزهای عبور شبکههای اجتماعی مختلف کاربر و همینطور صدوقهای پستی رو دریافت کنن.
اقدامات لازم در صورت هک شدن سایت
وب سایت، اموال و دارایی شما است. نمیتونین به راحتی کنترل اون رو از دست بدین. هکرها میتونن از کسب و کار و اطلاعات شما برای اهداف منفی خودشون استفاده کنن. برای حل مشکل باید هک شدن وبسایت رو تجزیه و تحلیل کنین تا بتونین نقاط ضعف رو در کدها پیدا کنین و در اسرع وقت اونها رو از بین ببرین. باید به یاد داشته باشین که اکثر هکرها بعد از اولین حمله تمایل زیادی به حملههای بعدی برای دسترسی بیشتر به منابع سایت شما دارن. پس یک سری راهها رو برای خودشون باز میذارن تا سر فرصت حملات بعدی رو انجام بدن. فقط یک متخصص قادر به کشف چنین روشهاییه. اگر سایت شما مورد حمله واقع شده و با خطر هک شدن سایت روبرو شدین، اینجا مراحلی وجود داره که باید گام به گام انجام بدین:
1. ویروسها
کامپیوتر خودتون به منظور شناسایی ویروسها بررسی کنین. یک آنتی ویروس خوب میتونه این کار رو برای شما انجام بده. Antivira و Comodo میتونه گزینه خوبی برای انجام این کار باشه.
2. Firewall
دیوار آتشی رو روی دستگاه خودتون نصب کنین. استفاده از Firewall به طور قابل توجهی خطر نفوذ نرم افزارهای مخرب و بدافزارها رو به سیستم شما کاهش میده. Comodo و Zone Alarm دیوارهای آتشی مناسبی هستن.
3. ارائه دهنده Host
با ارائه دهنده میزبان خودتون تماس بگیرین و مشکل رو درمیون بذارین. مدیران رو مطلع کنین و از اونها بخواین تا هک رو تجزیه و تحلیل کنن.
4. رمزهای عبور
وقتی با خطر هک شدن سایت مواجه شدین بلافاصله تمام رمزهای عبور رو تغییر بدین. از رمزهای عبور صندوق پستی گرفته تا رمزهای FTP.
5. کاربران
به کاربران سایت خودتون هشدار بدین که سایت هک شده و از اونها بخواین تا تمامی رمزهای عبور خودشون رو تغییر بدن.
6. Back up
بی معطلی از تمامی فایلها در سرور خودتون نسخه پشتیبان تهیه کنین.
7. کد فایل
کد فایل رو بررسی کنین. فایل htaccess. هکر میتونه از این فایل برای هدایت بازدیدکنندگان از سایت شما به یک سایت دیگه با یک کد مخرب نصب شده استفاده کنه.
8. حذف همه فایلها
شاید لازم باشه که همه فایلها رو از روی سرور خودتون حذف کنین. کد نصب شده ممکنه به خوبی پنهان شده باشه. پس شاید لازم باشه تمام فایلها و پایگاه داده رو از سرور حذف کنین. با این حال برگردوندن وبسایت نیاز به نسخه پشتیبان داره که باید قبل از حذف دادهها انجام بشه، یادتون نره!
9. CMS
سیستم مدیریت محتوا یا همون CMS خودتون رو به جدیدترین نسخه به روز کنین.
10. اعلان کردن
وقتی که وبسایت شما هک شد باید به کل دینا خبر بدین! سیستم عاملهای دیگه باید از این حادثه خبردار بشن. این کار به کاربران هم کمک میکنه تا کد فیلتر نویسی پین بار با هرگونه مشکل آمادهتر مواجه بشن.
11. درخواست کمک
درخواست کمک برای جبران آسیبهای وارد شده ضروریه و جلوی حملات بعدی رو میگیره.
12. پیدا کردن راه حل
وب مسترها باید راه حلهای بهتری رو برای حفظ امنیت سایت پیدا کنن. حفظ امنیت سایت یعنی حفظ اطلاعات کاربر که باید اولویت هر مدیر سایتی باشه.
جلوگیری از هک شدن سایت خیلی راحتتر از برگردوندن سایت بعد از حمله است. حفاظت از وبسایت یک مسئولیت بزرگیه که تنها کارشناسان خبره از پس اون برمیان.
هدف از هک شدن سایت
شما ممکنه فکر کنین سایت شما ارزشی برای هک شدن نداره و ممنکه بسیاری از نکات امنیتی رو انجام رعایت نکنین. اما باید بدونین همه سایت ها هر لحظه در معرض خطر و حملات سایبری هستن. اکثریت نقض امنیت وبسایت، برای دزدی از اطلاعات شما نیست. اونها تلاش میکنن تا از سرور شما به عنوان اسپم استفاده کنن یا سرور موقتی برای انجام کارهای غیرقانونی بسازن. هک کردن به طور منظم توسط اسکریپتهای خودکار نوشته شده تا از اینترنت برای بهره برداری از مسائل مربوط به امنیت وبسایت در نرم افزار استفاده کنه.
اما شما زمانی که تمامی نکات امنیتی رو اجرا کنین، یک وبسایت ایمن خواهین داشت. وب سایت ایمن باعث میشه تا کاربران با خیال راحتتری در سایت شما گشت بزنن! پس وقت زیادی رو در سایت شما میگذرونن که این کار باعث میشه نتایج جستجوی ارگانیک و رتبه بندی سایت شما افزایش پیدا کنه.
9 نکته امنیتی برای جلوگیری از هک شدن سایت
1. نرم افزارها رو به روز نگه دارین
اطمینان حاصل کنین تا همه نرم افزارها به روز کد فیلتر نویسی پین بار هستن. این کار در حفظ امنیت سایت شما حیاتیه. این امر به هر دو سیستم عامل سرور و هر نرم افزاری که در وب سایت اجرا میشه مثل CMS یا Forum، مربوطه. وقتی که نقاط ضعفی در نرم افزارها هست، هکرها سعی میکنن از اون سوء استفاده کنن. اگر از مدیریت یک میزبان استفاده میکنین، لازم نیست نگران این موضوع باشین چون شرکت میزبان از این موضوع مراقبت میکنه.
اگر از نرم افزاهای شخص ثالث در وبسایت مثل CMS یا Forum استفاده میکنین، باید اطمینان حاصل کنین که هرگونه موارد امنیتی رعایت میشه. اکثر فروشندگان یک لیستی با جزئیات هرگونه مشکل امنیتی وب سایت دارن. وردپرس، Umbraco و بسیاری از CMSها شما رو برای به روز رسانی مطلع میکنن.
2. مراقب SQL injection باشین
دومین روش برای جلوگیری از هک شدن سایت حملات SQL injection یا تزریق به دیتابیس زمانیه که مهاجم از یک فرم فیلد وب یا پارامتر URL استفاده میکنه تا به پایگاه داده دسترسی پیدا کنه خرابکاریهای لازم رو انجام بده. وقتی که از T-SQL استاندارد استفاده میکنین، به طور ناخودآگاه کدهایی رو به Query وارد میکنین که بعدها اون کدها میتونن جداول رو تغییر بدن، اطلاعات رو دریافت یا دادههایی رو حذف کنن.
3. حفاظت از حملات XSS
حملات XSS، جاوا اسکریپت مخرب رو به سایت شما تزریق میکنن. بعد از این اتفاق صفحات در مرورگر کاربران باز میشه که میتونه محتوا سایت رو تغییر بده یا اطلاعات افراد رو به سرقت ببره. شما بایدبرای جلوگیری از هک شدن سایت اطمینان حاصل کنین که کاربران نمیتونن محتوای جاوا اسکریپت فعال رو به صفحات تزریق کنن. این کد فیلتر نویسی پین بار یک نگرانی خاص در برنامههای کاربردی مدرن وب هست. جایی که صفحات در حال حاضر از محتوا کاربر ساخته شدن و در بسیاری از موارد HTML رو تولید میکنن.
یکی دیگه از ابزارهای قدرتمند در جعبه ابزار XSS، سیاست امنیتی محتوا(CSP) هست. CSP میتونه به مرورگر بگه که چجوری جاوا اسکریپت در صفحه اجرا بشه. به عنوان مثال برای عدم اجرا هر اسکریپت که در دامنه شما میزبانی نشده، جاوا اسکریپت یا Eval رو غیرفعال کنین. Mozilla یک راهنمای عالی برای انجام این کارها اراه داده. این کارها باعث میشه این نوع حملات سختتر بشن.
4. مراقب پیامهای خطا باشین
مراقب باشین که چه میزان اطلاعات با پیامهای خطا ارائه داده میشه. حداقل پیامها رو با کاربران به اشتراک بذارین تا مطمئن بشین اطلاعات محرمانه شما نشت پیدا نمیکنن. هیچگونه استثنایی قائل نشین. چون هر استثنا سبب میشه هک شدن سایت و حملات SQL injection آسونتر بشه.
5. اعتبار سنجی دو طرفه
هم مرورگر و هم سرور باید اعتبار سنجی بشن. اگر این کار رو انجام ندین ممکنه منجر به این شه که کد مخرب یا کد اسکریپت در پایگاه داده قرار بگیره و نتایج نامطلوبی رو در سایت ایجاد کنه.
6. رمزهای عبور ور چک کنین
همه این نکته رو میدونن که باید از رمزهای پیچیده استفاده کنن. بسیار بحرانی و حیاتیه که گذر واژههای قوی رو برای سرور و دسترسی Admin انتخاب کنین. به همین اندازه شیوه رمزگذاری از سمت کاربران هم اهمیت داره. میتونین برای این کار الزاماتی رو مثل “حداقل هشت کاراکتر”،”استفاده از حروف کوچک و بزرگ” استفاده کنین.
7. اجتناب از آپلود کردن فایل
اجازه دادن به کاربران برای آپلود فایلها میتونه یک خطر جدی برای هک شدن وبسایت باشه. هرچند که این کار از نظر شما بی خطر باشه اما ممکنه حاوی یک اسکریپت باشه که به وبسایت شما حمله کنه.
8. از HTTPS استفاده کنین
HTTPS یک پروتکل برای ارائه امنیت در اینترنت هست. HTTPS اطمینان میده که کاربران زمانی که دارن با یک سرور کار میکنن، شخص دیگهای نمیتونه محتوا و اطلاعات رو منتقل کنه.
9. ابزارهای امنیتی برای وبسایت دریافت کنین
مؤثرترین راه برای جلوگیری از هک شدن سایت ، استفاده از برخی از نرم افزارهای امنیتی وب سایت هست. برخی از ابزارها به شرح زیر هستن:
- Netsparker
- OpenVAS
- SecurityHeaders.io
- Xenotix XSS Exploit Framework
برای حفظ امنیت سایت خودتون و کاربران سایت باید این نکات گفته شده رو رعایت کنین تا حدالامکان جلوی هک شدن سایت و مجرمان رو بگیرین. امیدواریم که این مقاله کمک زیادی در این راستا به شما کرده باشه.
دیدگاه شما