در این مقاله توصیه های مهم را برای بهینه سازی امنیت وب سایت در طراحی سایت آموزش میدهیم.
شما ممکن است فکر کنید که سایت شما چیزی ارزشمند برای هک شدن ندارد، اما وب سایت ها همیشه در معرض خطر قرار دارند. اکثر نقض های امنیتی وب سایت این است که اطلاعات شما را سرقت نکنند و وب سایت شما را خراب نکنند، بلکه سعی می کند از سرور خود به عنوان یک رله ایمیلی برای هرزنامه استفاده کند یا یک سرور وب موقت را به طور معمول برای خدمت به فایل های استفاده کند. یکی دیگر از راه های بسیار رایج برای سوء استفاده از ماشین های به خطر افتاده شامل استفاده از سرورهای شما به عنوان بخشی از بوتنت یا برای بیت کوین ها است.
هکرها به طور مرتب توسط اسکریپت های خودکار نوشته شده اند. در اینجا 9 راهنمایی برتر ما برای کمک به نگه داشتن شما و سایت شما در اینترنت است.
این ممکن است به نظر آشکار باشد، اما اطمینان از این است که تمام نرم افزار را تا تاریخ حال بروزنمایید، در حفظ امنیت سایت شما حیاتی است هر سیستم عامل سرور و هر نرم افزاری که ممکن است در وب سایت شما مانند CMS یا انجمن استفاده شود. باید بروز باشد.هنگامی که سوراخ های امنیتی وب در نرم افزار یافت می شوند، هکرها سریعا تلاش می کنند تا از آنها سوء استفاده کنند.
اگر از نرم افزار شخص ثالث در وب سایت خود مانند CMS یا انجمن استفاده می کنید، باید اطمینان حاصل کنید که سریع درخواست هر نکته امنیتی را می دهد. وردپرس، Umbraco و بسیاری از CMS های دیگر در هنگام ورود به سیستم شما از به روز رسانی سیستم موجود مطلع می شوند.
حملات تزریق SQL زمانی است که مهاجم از یک فیلد فرم وب یا پارامتر URL برای دسترسی به پایگاه داده خود استفاده می کند. هنگامی که شما از استاندارد Transact SQL استفاده می کنید، به راحتی می توانید کد ناقص را در query وارد کنید که می تواند برای تغییر جداول، دریافت اطلاعات و حذف داده ها استفاده شود. شما به راحتی می توانید با استفاده از نمایش داده های پارامتریک از این کار جلوگیری کنید، اکثر زبان های وب این ویژگی را دارند و برای اجرای آسان است.
این پرسش را در نظر بگیرید:
“SELECT * FROM table WHERE column = ‘” + parameter + “‘;”
اگر یک مهاجم پارامتر URL را برای عبور در ‘یا’ 1 ‘=’ 1 تغییر داد، این باعث خواهد شد پرس و جو به نظر می رسد:
“SELECT * FROM table WHERE column = ” OR ‘1’=’1′;”
از آنجا که ‘1’ برابر با ‘1’ است، این به مهاجم اجازه می دهد یک query اضافی را به انتهای دستور SQL اضافه کند که همچنین اجرا می شود.
شما می توانید این پرس و جو را با صراحت پارامتر آن را رفع کنید. برای مثال، اگر از MySQLi در PHP استفاده می کنید این باید تبدیل به:
$stmt = $pdo->prepare(‘SELECT * FROM table WHERE column = :value’);$stmt->execute(array(‘value’ => $parameter));
شود.
اسکریپت cross-site (XSS) حملات جاوا اسکریپت را به صفحات شما تزریق می کند و سپس در مرورگرهای کاربران شما اجرا می شود و می تواند محتوای صفحه را تغییر دهد یا اطلاعات را به منظور مهاجرت به وی بازگرداند. به عنوان مثال، اگر شما نظر خود را در یک صفحه بدون اعتبار نمایش دهید، مهاجم ممکن است نظراتی حاوی برچسب های اسکریپت و جاوا اسکریپت را ارائه کند، که می تواند در هر مرورگر کاربر دیگر اجرا شود و کوکی ورود به سیستم را سرقت می کند،. شما باید مطمئن شوید که کاربران نمیتوانند جاوااسکریپت فعال خود را در صفحات شما تزریق کنند.
این یک نگرانی ویژه در برنامه های کاربردی وب مدرن است که در آن صفحات در حال حاضر عمدتا از محتوای کاربر ساخته شده اند و در بسیاری از موارد HTML را تولید می کنند که سپس توسط چارچوب های جلویی مانند Angular و Ember نیز تفسیر می شود. این چارچوب ها بسیاری از محافظت های XSS را فراهم می کنند، اما مخلوط کردن سرور و ارائه دهی مشتری باعث پیچیدگی های جدید و پیچیده تر نیز می شود: بنابراین تزریق جاوا اسکریپت به HTML موثر است
در مقاله بعدی ادامه راهکارهای امنیت و جلوگیری از هک شدن سایت را به شما آموزش میدهیم.