شاید تا کنون چندان به جلوگیری از هک سایت خود فکر نکرده باشید . چرا که فکر می کنید سایت شما چیزی برای هک شدن ندارد . اما باید بدانید که وب سایت ها همیشه در معرض خطر هستند. اکثر موارد نقض امنیت وب سایت برای سرقت داده های شما یا بهم ریختن طرح وب سایت شما نیست.
بلکه در عوض سعی می کند از سرور شما به عنوان یک رله ایمیل برای هرزنامه استفاده کند . یا یک وب سرور موقت را راه اندازی کند. ارائه پرونده هایی با ماهیت غیرقانونی دیگر راه های بسیار رایج برای سوء استفاده از ماشین های در معرض خطر است. شامل استفاده از سرورهای خود به عنوان بخشی از یک بات نت یا استخراج بیت کوین . حتی ممکن است مورد ضربه باج افزار قرار بگیرید.
البته که در بسیاری از موارد هکرها برای اخاذی از شما در ازای پس دادن اطلاعاتتان و یا بهم نریختن سایتتان نیز دست به هک سایت شما می زنند.
به هر حال حتما می دانید که ایجاد امنیت و جلوگیری از هک سایت یکی از موارد مهمی است که مدیران سایت ها و برنامه نویسان همیشه باید به آن اهمیتی ویژه بدهند . در این مقاله نیز به طور کامل به این موضوع خواهیم پرداخت.
آنچه در این مقاله خواهید خواند :
هک به طور منظم توسط اسکریپت های خودکار نوشته شده برای سایتها انجام می شود. آن هم برای جست و جوی اینترنت در تلاش برای سوء استفاده از مسائل امنیتی شناخته شده وب سایت در نرم افزار . در اینجا 9 نکته برتر ما برای کمک به ایمن نگه داشتن شما و جلوگیری از هک سایت تان در فضای آنلاین آورده شده است.
ممکن است بدیهی به نظر برسد. اما اطمینان از به روز نگه داشتن تمام نرم افزارها برای ایمن نگه داشتن سایت شما حیاتی است. این هم برای سیستم عامل سرور و هم برای هر نرم افزاری که ممکن است در وب سایت خود اجرا کنید، مانند CMS یا انجمن، صدق می کند. هنگامی که حفره های امنیتی وب سایت در نرم افزار پیدا می شود، هکرها به سرعت سعی می کنند از آنها سوء استفاده کنند.
اگر از یک راه حل میزبانی مدیریت شده استفاده می کنید، دیگر نیازی به نگرانی در مورد اعمال به روز رسانی های امنیتی برای سیستم عامل ندارید زیرا شرکت میزبان باید مراقب این موضوع باشد.
اگر از نرم افزار شخص ثالث در وب سایت خود مانند CMS یا انجمن استفاده می کنید، باید اطمینان حاصل کنید که به سرعت هر وصله امنیتی را اعمال می کنید. اکثر فروشندگان یک لیست پستی یا فید RSS دارند. که هر گونه مشکل امنیتی وب سایت را با جزئیات شرح می دهد. وردپرس Umbraco و بسیاری از CMS های دیگر هنگام ورود به سیستم شما را از به روز رسانی های موجود سیستم مطلع می کنند.
بسیاری از توسعهدهندگان از ابزارهایی مانند Composer، npm یا RubyGems برای مدیریت وابستگیهای نرمافزاری خود استفاده میکنند .آسیبپذیریهای امنیتی که در بستهای که به آن وابسته هستید اما به آن توجهی نمیکنید ظاهر میشوند، یکی از سادهترین راهها برای گیر افتادن است. اطمینان حاصل کنید که وابستگی های خود را به روز نگه دارید . از ابزارهایی مانند Gemnasium (در برگه جدید باز می شود) برای دریافت اعلان های خودکار هنگام اعلام آسیب پذیری در یکی از اجزای خود استفاده کنید.
👨💻👨💻👨💻 بیشتر بخوانید : هک تلگرام با شماره چگونه انجام می شود
حملات تزریق SQL زمانی هستند که یک مهاجم از یک فیلد فرم وب یا پارامتر URL برای دسترسی یا دستکاری به پایگاه داده شما استفاده می کند. وقتی از Transact SQL استاندارد استفاده میکنید، به راحتی میتوانید ندانسته کدهای سرکش را در جستار خود وارد کنید .که میتواند برای تغییر جداول، دریافت اطلاعات و حذف دادهها استفاده شود. شما به راحتی می توانید با استفاده از پرس و جوهای پارامتری شده از این امر جلوگیری کنید.اکثر زبان های وب این ویژگی را دارند و پیاده سازی آن آسان است.
حملات اسکریپت بین سایتی (XSS) جاوا اسکریپت مخرب را به صفحات شما تزریق می کند . این یکی از مهمترین حملات است .که سپس در مرورگرهای کاربران شما اجرا می شود .سپس می تواند محتوای صفحه را تغییر دهد یا اطلاعات را بدزدد تا به مهاجم ارسال شود.
به عنوان مثال، اگر نظراتی را در یک صفحه بدون تأیید نشان میدهید، مهاجم ممکن است نظراتی حاوی برچسبهای اسکریپت و جاوا اسکریپت ارسال کند که میتواند در مرورگر هر کاربر دیگری اجرا شود و کوکی ورود به سیستم آنها را بدزدد و به حمله اجازه دهد کنترل حساب هر کاربر را در دست بگیرد. کاربری که نظر را مشاهده کرده است. باید اطمینان حاصل کنید که کاربران نمی توانند محتوای فعال جاوا اسکریپت را به صفحات شما تزریق کنند.
این یک نگرانی خاص در برنامههای کاربردی وب مدرن است، جایی که صفحات در حال حاضر عمدتاً از محتوای کاربر ساخته میشوند و در بسیاری از موارد HTML تولید میکنند که سپس توسط فریمورکهای جلویی مانند Angular و Ember نیز تفسیر میشود. این فریمورکها بسیاری از حفاظتهای XSS را ارائه میکنند، اما اختلاط رندر سرور و کلاینت، راههای حمله جدید و پیچیدهتری را نیز ایجاد میکند: نه تنها تزریق جاوا اسکریپت به HTML مؤثر است، بلکه میتوانید محتوایی را نیز با درج دستورالعملهای Angular یا استفاده از Ember تزریق کنید که کد را اجرا کند.
نکته کلیدی محافظت از هک سایت در اینجا این است که بر این تمرکز کنید که چگونه محتوای تولید شده توسط کاربر می تواند از محدودیت های مورد انتظار شما فرار کند و توسط مرورگر به عنوان چیزی غیر از آنچه شما در نظر داشتید تفسیر شود. این شبیه به دفاع در برابر تزریق SQL است. هنگام تولید پویا HTML، از توابعی استفاده کنید که صراحتاً تغییرات مورد نظر شما را ایجاد میکنند (مثلاً از element.setAttribute و element.textContent استفاده کنید که مرورگر بهطور خودکار از آن خارج میشود، به جای تنظیم element.innerHTML با دست)، یا از توابع استفاده کنید.
یکی دیگر از ابزارهای قدرتمند در جعبه ابزار مدافع XSS Content Security Policy (CSP) است. CSP هدری است که سرور شما میتواند برگرداند و به مرورگر میگوید که چگونه و چه چیزی جاوا اسکریپت در صفحه اجرا میشود را محدود کند، بهعنوان مثال اجرای هر اسکریپتی را که در دامنه شما میزبانی نشده است، غیرفعال کردن جاوا اسکریپت درون خطی یا غیرفعال کردن eval(). موزیلا یک راهنمای عالی دارد (در تب جدید باز می شود) با چند نمونه پیکربندی. این کار اسکریپتهای مهاجم را سختتر میکند، حتی اگر بتوانند آنها را وارد صفحه شما کنند.
مراقب میزان اطلاعاتی که در پیام های خطای خود می دهید باشید. فقط حداقل خطاها را به کاربران خود ارائه دهید تا مطمئن شوید که اسرار موجود در سرور شما (مانند کلیدهای API یا رمزهای عبور پایگاه داده) درز نمی کنند. جزئیات کامل استثنا را نیز ارائه نکنید، زیرا این موارد میتوانند حملات پیچیده مانند تزریق SQL را بسیار آسانتر کنند. خطاهای دقیق را در گزارش های سرور خود نگه دارید و فقط اطلاعات مورد نیاز کاربران را نشان دهید.
اعتبارسنجی باید همیشه هم در سمت مرورگر و هم در سمت سرور برای جلوگیری از هک سایت انجام شود. مرورگر میتواند خطاهای ساده مانند فیلدهای اجباری که خالی هستند و زمانی که متن را در یک قسمت فقط اعداد وارد میکنید، پیدا کند. با این حال، میتوان از این موارد عبور کرد، و باید مطمئن شوید که این اعتبارسنجی و اعتبارسنجی عمیقتر سمت سرور را بررسی میکنید، زیرا عدم انجام این کار میتواند منجر به درج کد مخرب یا کد برنامهنویسی در پایگاه داده شود یا میتواند نتایج نامطلوبی را در وبسایت شما ایجاد کند.
همه می دانند که باید از رمزهای عبور پیچیده استفاده کنند. اما این بدان معنا نیست که همیشه این کار را می کنند. استفاده از رمزهای عبور قوی برای سرور و ناحیه مدیریت وب سایت بسیار مهم است. اما به همان اندازه مهم است که بر روی روش های رمز عبور خوب برای کاربران خود برای محافظت از امنیت حساب های خود اصرار کنید.
تا آنجا که کاربران ممکن است آن را دوست نداشته باشند، اعمال الزامات رمز عبور است. مانند حداقل حدود هشت کاراکتر، از جمله یک حرف بزرگ و عدد. این به محافظت از اطلاعات آنها در طولانی مدت کمک می کند.
رمزهای عبور باید همیشه به عنوان مقادیر رمزگذاری شده ذخیره شوند. ترجیحاً با استفاده از الگوریتم هش یک طرفه مانند SHA. استفاده از این روش به این معنی است که وقتی در حال احراز هویت کاربران هستید، فقط مقادیر رمزگذاری شده را با هم مقایسه می کنید. برای امنیت بیشتر وب سایت، ایده خوبی است که رمزهای عبور را با استفاده از بخش جدید به ازای هر رمز عبور استفاده کنید.
در صورت هک کردن و سرقت رمزهای عبور توسط شخصی، استفاده از رمزهای عبور هش شده می تواند به محدود کردن آسیب کمک کند. زیرا رمزگشایی آنها امکان پذیر نیست. بهترین کاری که کسی می تواند انجام دهد حمله دیکشنری یا حمله brute force است. که اساساً هر ترکیبی را حدس می زند. تا زمانی که مطابقت پیدا کند. هنگام استفاده از رمزهای عبور الکی، فرآیند شکستن تعداد زیادی از رمزهای عبور حتی کندتر است. زیرا هر حدس باید به طور جداگانه برای هر salt + password که از نظر محاسباتی بسیار گران است، هش شود.
خوشبختانه، بسیاری از CMS ها مدیریت کاربر را با بسیاری از این ویژگی های امنیتی وب سایت ارائه می کنند. اگرچه ممکن است برای استفاده از رمزهای عبور نمکی (قبل از دروپال 7) یا تنظیم حداقل قدرت رمز عبور، به پیکربندی یا ماژول های اضافی نیاز باشد. اگر از دات نت استفاده می کنید، ارزش آن را دارد که از ارائه دهندگان عضویت استفاده کنید. زیرا آنها بسیار قابل تنظیم هستند، امنیت وب سایت داخلی را فراهم می کنند و جلوگیری از هک سایت را به نوعی انجام می دهند.همچنین شامل کنترل های آماده برای ورود به سیستم و بازنشانی رمز عبور هستند.
اجازه دادن به کاربران برای آپلود فایل ها در وب سایت شما می تواند یک خطر بزرگ امنیتی وب سایت باشد، حتی اگر صرفاً تغییر آواتار آنها باشد. خطر این است که هر فایلی که آپلود میشود، هر چند بیگناه به نظر برسد، میتواند حاوی اسکریپتی باشد که وقتی روی سرور شما اجرا میشود، وبسایت شما را به طور کامل باز میکند.
اگر فرم آپلود فایل دارید، باید با شک و تردید با همه فایل ها برخورد کنید. اگر به کاربران اجازه میدهید تصاویر را آپلود کنند، نمیتوانید برای تأیید اینکه فایل یک تصویر است به پسوند فایل یا نوع mime تکیه کنید زیرا به راحتی میتوان آنها را جعل کرد. حتی باز کردن فایل و خواندن هدر، یا استفاده از توابع برای بررسی اندازه تصویر، بیخطا نیست. اکثر فرمتهای تصاویر اجازه میدهند بخش نظراتی را ذخیره کنند که میتواند حاوی کد PHP باشد که میتواند توسط سرور اجرا شود.
بنابراین برای جلوگیری از این امر چه کاری می توانید انجام دهید؟ در نهایت شما می خواهید کاربران را از اجرای هر فایلی که آپلود می کنند جلوگیری کنید. بهطور پیشفرض، سرورهای وب سعی نمیکنند فایلهایی را با پسوندهای تصویری اجرا کنند، اما تنها به بررسی پسوند فایل تکیه نکنید، زیرا فایلی با نام image.jpg.php شناخته شده است.
HTTPS پروتکلی است که برای تامین امنیت و محافظت از هک سایت از طریق اینترنت استفاده می شود. HTTPS تضمین میکند که کاربران با سرور مورد انتظارشان صحبت میکنند . هیچ کس دیگری نمیتواند محتوایی را که در حین انتقال میبینید رهگیری یا تغییر دهد.
ممکن است چیزی دارید که کاربران شما ممکن است خصوصی بخواهند.در این موارد بسیار توصیه می شود که برای ارائه آن فقط از HTTPS استفاده کنید. البته این به معنای صفحات کارت اعتباری و ورود به سیستم (و URL هایی است که آنها ارسال می کنند) اما معمولاً تعداد بیشتری از سایت شما نیز وجود دارد. یک فرم ورود اغلب یک کوکی برای مثال تنظیم میکند.که همراه با هر درخواست دیگری که کاربر وارد شده به سایت شما ارسال میکند، ارسال میشود . برای احراز هویت آن درخواستها استفاده میشود.
مهاجمی که این مورد را سرقت میکند، میتواند کاملاً از یک کاربر تقلید کند و جلسه ورود به سیستم او را تحت کنترل بگیرد. برای شکست دادن این نوع حملات، تقریبا همیشه می خواهید از HTTPS برای کل سایت خود استفاده کنید.این دیگر مانند گذشته دشوار یا گران نیست. Let’s Encrypt (در برگه جدید باز می شود) گواهینامه های کاملاً رایگان و خودکار را ارائه می دهد که برای فعال کردن HTTPS به آنها نیاز دارید، و ابزارهای انجمن موجود برای طیف گسترده ای از پلتفرم ها و چارچوب های رایج برای تنظیم خودکار آن برای شما وجود دارد.
بهخصوص گوگل اعلام کرده است که در صورت استفاده از HTTPS، شما را در رتبهبندی جستجو ارتقا میدهد و به این امر مزیت سئو را نیز میدهد. HTTP ناامن در راه است و اکنون زمان ارتقا است.
از قبل در همه جا از HTTPS استفاده می کنید؟ به راهاندازی HTTP Strict Transport Security (HSTS) نگاهی بیندازید، یک هدر آسان که میتوانید به پاسخهای سرور خود اضافه کنید تا HTTP ناامن را برای کل دامنه خود مجاز نکنید.
ممکن است که فکر می کنید تمام کارهایی که می توانید برای جلوگیری از هک سایت انجام داده اید. اینجا زمانی است که نوبت به تست امنیت وب سایت می رسد. موثرترین راه برای انجام این کار، استفاده از برخی ابزارهای امنیتی وب سایت است .که اغلب به عنوان تست نفوذ یا به اختصار تست قلم نامیده می شود.
بسیاری از محصولات تجاری و رایگان برای کمک به شما در این زمینه وجود دارد. آنها بر مبنایی مشابه با هکرهای اسکریپت کار میکنند. زیرا همه اکسپلویتهای شناخته شده را آزمایش میکنند . سعی میکنند با استفاده از برخی از روشهای ذکر شده قبلی مانند SQL Injection، سایت شما را به خطر بیاندازند.
Netsparker (در برگه جدید باز می شود) (نسخه انجمن رایگان و نسخه آزمایشی موجود است). برای تست تزریق SQL و XSS خوب است
OpenVAS (در برگه جدید باز می شود) ادعا می کند که پیشرفته ترین اسکنر امنیتی منبع باز است. برای آزمایش آسیب پذیری های شناخته شده خوب است. در حال حاضر بیش از 25000 مورد را اسکن می کند. اما تنظیم آن ممکن است دشوار باشد . نیاز به یک سرور OpenVAS دارد که فقط روی *nix اجرا شود. OpenVAS انشعاب یک Nessus قبل از تبدیل شدن به یک محصول تجاری منبع بسته است.
SecurityHeaders.io ابزاری برای گزارش سریع سرفصل های امنیتی ذکر شده در بالا (مانند CSP و HSTS) که دامنه فعال و به درستی پیکربندی شده است.
Xenotix XSS Exploit Framework ابزاری از OWASP (پروژه امنیتی برنامه وب باز) که شامل مجموعه عظیمی از نمونه های حمله XSS است که می توانید آن را اجرا کنید تا به سرعت تأیید کنید که آیا ورودی های سایت شما در کروم، فایرفاکس و IE آسیب پذیر هستند یا خیر. .
نکته اصلی این است که ابتدا روی مسائل مهم تمرکز کنید. هر مشکل گزارش شده معمولاً با توضیح خوبی از آسیب پذیری احتمالی همراه است. احتمالا متوجه خواهید شد که برخی از مسائل متوسط/پایین برای سایت شما نگران کننده نیستند.
مراحل دیگری وجود دارد که می توانید برای به خطر انداختن سایت خود با تغییر مقادیر POST/GET به صورت دستی انجام دهید. یک پروکسی اشکال زدایی می تواند در اینجا به شما کمک کند. زیرا به شما امکان می دهد مقادیر یک درخواست HTTP را بین مرورگر و سرور خود رهگیری کنید. یک نرم افزار رایگان محبوب به نام Fiddler (در برگه جدید باز می شود) نقطه شروع خوبی است.
بنابراین چه چیزی را باید در درخواست تغییر دهید؟. ممکن است صفحاتی دارید که فقط باید برای یک کاربر وارد شده قابل مشاهده باشند. سعی کنید پارامترهای URL مانند شناسه کاربر یا مقادیر کوکی را در تلاش برای مشاهده جزئیات کاربر دیگر تغییر دهید. حوزه دیگری هم ارزش آزمایش دارد. فرم ها، تغییر مقادیر POST برای ارسال کد برای انجام XSS یا آپلود یک اسکریپت سمت سرور هستند.
قبل از اینکه شما را رها کنم، میخواهم یکی از افسانههای هک وبسایت را از بین ببرم.اکثر مردم می گویند که یک مجرم سایبری فقط یک وب سایت محبوب با تعداد زیادی کاربر و ترافیک را هک می کند. زیرا ارزش تلاش را دارد.با استفاده از این تکنیک های هک وب سایت، یک هکر می تواند هر وب سایتی که دارای آسیب پذیری امنیتی باشد را هک کند. چرا این را می گویم؟
این به این دلیل است که هک، در بیشتر موارد دستی نیست. خودکار است. هکرهای کلاه سیاه رباتهای خودکاری توسعه دادهاند. که هر وبسایتی را میخزند و به آن حمله میکنند. این ربات ها نمی توانند بدانند که یک وب سایت محبوب است یا نه.پس به سادگی به آن حمله می کنند .در اغلب موارد وب سایت های کوچکتر را به راحتی از بین می برند.
این به این دلیل است که صاحبان وب سایت های کوچکتر به اجرای اقدامات امنیتی مناسب برای کاهش انواع مختلف هک وب سایت اهمیت نمی دهند.بهترین راه این است که هک را از این آموزش های هک اخلاقی به صورت آنلاین یاد بگیرید. از طریق این دوره ها، شما نه تنها تکنیک ها و فن آوری های هک مورد استفاده توسط سیا، ناسا و غیره را برای محافظت از خود می آموزید. بلکه یاد می گیرید که چگونه آنها را در عملیات روزانه خود برای محافظت از سازمان خود پیاده سازی کنید.