چطور از هک وبسایت جلوگیری کنیم
خدمات طراحی سایت و برنامه نویسی انواع پلتفرم ، اپلیکیشن در شمال کشور با سابقه درخشان از سال 1385 بصورت حرفه ای
چطور از هک وبسایت جلوگیری کنیم ؟
در چند دههی اخیر، مفهوم بسیار گستردهای بانام «CyberCrime or Computer Crime» بهوجود آمده است که طیف وسیعی از رفتارها و اعمالی را که با کامپیوتر انجام میشود جرم دانسته. یکی از این اعمال و رفتار هککردن است. قبل از هر چیز بهتر است روشن شود که هک کردن یعنی چه؟
هک کردن در عامترین تعریفش یعنی بدون اجازهی کسی از کامپیوتر یا موبایل او استفاده شود برای انجام کاری غیرقانونی و دزدین اطلاعات ذخیرهشده در آن دستگاه. اگر کسی بدون اجازهی شما وارد ایمیلتان شود و از ایمیل شما برای کس دیگری ایمیل بزند، ایمیل شما هک شده.
هک کردن وب سایتها هم همین است. وقتی هکری وارد سایت شما میشود از اطلاعات آن استفاده میکند، ساختار و قالب سایت را خراب میکند، با استفاده از سایت شما و سرور شما کارهای غیرقانونی انجام میدهد (مثلا استخراج بیتکوین) یا برای کاربران ایمیل اسپم میفرستد؛ سایت شما هک شده است. حتی ممکن است به وبسایت شما با هدف مختلکردن و downکردنش حملهی هکری شود. باجافزارها (Ransomware) هم تهدید جدی دیگری هستند.
البته این هم باید گفته شود که گاهی هک کردن سایت با هدف پیداکردن حفرههای امنیتی آن انجام میشود. یعنی از هکر خواسته میشود تا امنیت سایت را چک کند و ببیند تا روشهایی که برای جلوگیری از هک شدن بهکار گرفته شده کافی است یا نه.
۵ روش برای جلوگیری از هک شدن هر سایتی
درادامه، ۵ روشی که وب سایت ها باید از آنها برای هک نشدن سایتشان استفاده کنند معرفی میشود. بعضی از این روشها رایگان هستند و بعضی دیگر پولی. و بله! بعضی سایتها به بسیار بسیار بیش از این ۵ روش نیاز دارند و برای بعضی چندتا از این ۵ تا کافی است.
۱. افزونههای امنیتی
اگر سایت شما روی یکی از سیستمهای مدیریت محتوا (CMS) مثل وردپرس یا جوملا یا دروپال ساخته شده است، کارتان بسیار راحتتر شده. هرکدام از این سیستمها افزونهها یا پلاگینهای امنیتی زیادی دارند. طراح سایت بهراحتی میتواند یک یا چندتا از این افزونهها را نصب کند و خیالش تاحد زیادی از امنیت سایت راحت باشد.
از مهمترین و کاربردیترین افزونههای وردپرس، iThemes Security است. افزونهای امنیتی و تقریبا جامع که سایت را اسکن میکند و مشکلات و خطرات امنیتی را اعلام. BulletProof Security نیز از گزینههای خوب دیگر است. Antivirus Website Protection و RSFirewall هم دو تا از پلاگینهای امنیتی معروف جوملا هستند.
۲. پروتکل امنیتی HTTPS
سایت شما هر طور که ساخته شده باشد و هرنوعی که باشد (محتوایی یا خبری یا آموزشی یا سایتی مثل آمازون) باید از این پروتکل استفاده کند. بله، درست است که استفاده از این پروتکل هزینه دارد؛ اما این هزینهای لازم برای وب سایت شما است. حتی در سئو سایت شما و از نظر گوگل هم داشتن HTTPS ضروری است.
HTTPS یا گواهی SSL نشان میدهد که انتقال اطلاعات بین سرور و سایت امن و رمزگذاری شده است. یعنی شخص سوم (هکر) نمیتواند در میان راه اطلاعات را بدزدد. سایتهایی که این پروتکل انتقال اطلاعات را دارند، آدرس صفحاتشان به این شکل است: https://amanjacademy.com/amanjblog/. وقتی این پروتکل نباشد، اگر سایت با کروم باز شود به کاربر اطلاع میدهد که این سایت امن نیست. HTTP و HTTPS چیست؟ +بررسی تفاوت های آن را بخوانید تا کاملا برایتان مشخص شود که تفاوت این دو در چیست.
۳. آپدیت منظم سایت
این مورد در همهی وب سایتها مشترک است. اگر در نرمافزار سایت شما مشکلی یا حفرهای امنیتی وجود داشته باشد، هکرها خیلی زود از آن سوءاستفاده میکنند. آپدیت نگهداشتن سایتهای وردپرسی کار راحتتری است. چون خود سیستم به شما اخطار میدهد که نرمافزار نیاز به آپدیتشدن دارد. همچنین اگر افزونهای نیاز داشته باشد بهروزرسانی شود، بازهم وردپرس به مدیر سایت اخطار میدهد.
برای سایتهایی که با php ساخته شدهاند نیز انتخابهایی وجود دارد. ابزارهایی (مانند Composer, npm, or RubyGems) هست که به توسعهدهندگان وب سایتها کمک میکند تا از نقطهضعفهای احتمالی در نرمافزاری که ساختهاند آگاه شوند. مهم این است که توسعهدهنده و برنامهنویس باید به اخطارها و اعلانهای این ابزارها دقت کنند و از کنار آنها بهراحتی عبور نکنند.
۴. تغییر مداوم رمزعبور و مشکل دسترسیها
رمزعبور سرور و مدیریت سایت (admin) را جدی بگیرید. این رمزعبورها باید قوی باشند. علاوهبر این بسیار دقت کنید که به چه کسانی چه دسترسیهایی را میدهید. اگر سایت چند ادمین دارد یا به هر دلیلی افراد مختلفی به سایت دسترسی دارند و میتوانند تغییر در آن ایجاد کنند، باید مراقب بود.
رمزعبور ادمین فقط مهم نیست. اگر در سایت کاربر میتواند عضو شود و اطلاعاتی ثبت کند و باید رمزعبوری برای ورود به حساب کاربریاش داشته باشد، مدیر سایت یا توسعهدهنده باید مطمئن شود که کاربر (حتی وقتی خوشش نمیآید یا تنبلی میکند) هم رمزعبوری قوی برای خودش انتخاب میکند. بعضی سایتها، برای رعایتکردن همین موضوع، به کاربر اجازه نمیدهند که رمزعبوری کمتر از ۸ حرف (Character) داشته باشند.
۵. SQLI & XSS Attack
سایتها باید دربرابر دو حملهی هکری حفاظت شده باشند: SQL injection و Cross-site scripting (XSS) attacks. در حملهی SQL، که حملهی بسیار شایعی هم هست، هکر از کدهای مخرب SQL استفاده میکند تا به اطلاعاتی دسترسی پیدا کند که برای نمایش و دسترسی عموم نیست. این اطلاعات ممکن است اطلاعات مشتریان سایت یا دادههای محرمانهی مربوط به شرکت یا کسبوکار باشد. از این حمله بهراحتی میشود با یک ویژگی که بیشتر زبانهای برنامهنویسی سمت سرور دارند جلوگیری کرد: Parameterised Queries (یعنی گنجاندن پارامتراها یا متغیرها در query).
Cross-site scripting (XSS) attacks inject malicious JavaScript into your pages, which then runs in the browsers of your users, and can change page content, or steal information to send back to the attacker.
XSS حملهای است که در آن کدهای جاوااسکریپت مخرب به صفحهای اضافه میشود (تزریق میشود). این کدها در مرورگر کاربر اجرا میشود و ممکن است محتوای صفحهای را که کاربر میبیند تغییر دهد یا اطلاعات کاربر را بدزدد و به هکر بفرستد.
این حمله ممکن است ساختار html را نیز تحت تاثیر قرار دهد. از این حمله هم با ترفندی مانند آنچه برای حملهی اول گفته شد میشود جلوگیر کرد (یعنی با دستکاری کدها). البته روش بهتر استفاده از Content Security Policy (CSP) است. با این روش، توسعهدهنده یا طراح سایت میتواند از سرور بخواهد که به مرورگر بگوید کدام کدهای جاوااسکریپ را تا چه اندازه برای کاربر اجرا کند.