در طی چند سال گذشته، خرده فروشی آنلاین محبوبیت جهانی پیدا کرده است و همراه با آن، نیاز زیادی به امنیت مناسب ایجاد شده است. مشتریان جزئیات پرداخت و سایر اطلاعات حساس شخصی خود را به فروشگاه های آنلاین می سپارند، که آنها را برای مجرمان و هکرها بسیار جذاب می کند. در چنین زمانی، امنیت باید اولویت اصلی صاحبان فروشگاه های آنلاین و PrestaShop باشد.
در این مقاله، بهترین اقدامات امنیتی برای پلتفرم تجارت الکترونیک پرستاشاپ را بررسی خواهیم کرد. همچنین در مورد حملات هکری که بیشتر برای نقض امنیت فروشگاه های پرستاشاپ استفاده می شود و نحوه برخورد با آنها آشنا خواهیم شد.
اقدامات امنیت اولیه PrestaShop در برابر هکرها
نسخه پرستاشاپ را به موقع به روز کنید.
هر نسخه جدید پرستاشاپ، در میا***ن تمام پیشرفتهای دیگر، امنیت ارتقا یافته و آسیبپذیریهای رفع شده دارد. بنابراین، بسیار مهم است که از آخرین نسخه پایدار پلتفرم استفاده کنید.
برای افزایش امنیت ، گواهی SSL را در فروشگاه PrestaShop نصب کنید.
گواهی SSL داده هایی را که از سرویس گیرنده به وب سرور ارسال می شود و برعکس می شود رمزگذاری می کند. گواهینامه های SSL یکی از اساسی ترین و ضروری ترین اقدامات برای افزایش امنیت Prestashop محسوب می شوند.
SSL را می توان از طریق پنل مدیریت پرستاشاپ فعال کرد. برای انجام این کار، وارد ادمین شوید.
در نوار کناری سمت چپ، روی الویت ها و سپس روی عمومی کلیک کنید. برای اینکه بتوانید رمزگذاری SSL را برای فروشگاه آنلاین خود فعال کنید، باید یک گواهی SSL برای نام دامنه فروشگاه خود داشته باشید.
لطفاً به خاطر داشته باشید که اگر ارائه دهنده هاست شما از SSL پشتیبانی می کند، همیشه می توانید پشتیبانی SSL پرستاشاپ را فعال کنید.
مانند تصویر زیر فعالسازی SSL پرستاشاپ را با کلیک روی “بله” در تنظیمات “فعال کردن SSL” انجام دهید.
حتی می توانید فعالسازی SSL پرستاشاپ را برای تمام صفحات سایت فروشگاهی خود فعال کنید . کافی است مطابق با تصویر زیر اقدام کنید و ذخیره کنید .
از فایل htacess برای امنیت فایل های باطن Prestashop استفاده کنید.
با کمک htacess می توانید اقدامات ایمنی بیشتری را معرفی کنید، به عنوان مثال، با ایجاد یک لیست سفید از آدرس های IP که تنها به آن دسترسی دارند، دسترسی به پنل مدیریت را محدود کنید.
deny from all allo from X.X.X.X (IP address)
نام پوشه backoffice خود را تغییر دهید.
پس از نصب پرستاشاپ، نام پوشه مدیریت را برای امنیت بیشتر تغییر دهید. در حالت ایده آل، نام باید منحصر به فرد باشد و از حروف و اعداد تشکیل شده باشد، به عنوان مثال، m8y1adm1n.
پس از نصب فایل های غیر ضروری را حذف کنید.
برای امنیت، اکیداً توصیه می شود پس از ارتقا یا نصب نسخه جدید Prestashop، پوشه /install را حذف کنید . همچنین، همیشه فایلهای اضافی را از سرور حذف کنید: فایلهای README.md، CONTRIBUTING.md و CONTRIBUTORS.md، و همچنین فایل / docs همراه با محتویات آن.
دسترسی به قالب های خود را رد کنید.
با استفاده از فایل htaccess. با محتویات زیر، دسترسی به فایلها و قالبهای تم خود را مسدود کنید:
<FilesMatch "\.tpl$"> order deny,allow deny from all </FilesMatch>
یک نسخه پشتیبان از فروشگاه خود ایجاد کنید.
داشتن یک نسخه پشتیبان از وب استور به شما این امکان را می دهد که در صورت هک شدن یا خرابی آن را به طور کامل بازیابی کنید. می توانید خودتان یک نسخه پشتیبان ایجاد کنید یا به یک شرکت میزبان مراجعه کنید.
برای افزایش امنیت Prestashop کوکی ها را معرفی کنید.
کوکی ها فایل های متنی هستند که حاوی اطلاعاتی درباره مشتریان و بازدیدکنندگان فروشگاه پرستاشاپ شما هستند.
از طریق پنل مدیریت می توانید کوکی ها را روشن و خاموش کنید.
ابتدا وارد ادمین خود شوید و به پیکربندی > پارامترهای فروشگاه > عمومی بروید . سپس،” افزایش امنیت بخش کاربری ” را فعال کنید تا فایلهای کوکی را برای فروشگاه شما روشن کند.
علاوه بر کوکیها، فعال کردن افزایش امنیت جلوی صفحه، دادههای رمز را بررسی میکند. هنگامی که مشتری اقدامات خاصی را با سبد خرید انجام می دهد، فایل های توکن او از طریق GET یا POST (علاوه بر COOKIE) به سرور ارسال می شود تا بررسی شود آیا IP او و کوکی های مرورگر مطابقت دارند یا خیر. این به جلوگیری از تقلب و تلاش های غیرمجاز برای ورود به پنل مدیریت کمک می کند.
به خاطر داشته باشید که طبق قانون GDPR یک خرده فروش باید به مشتریان خود اطلاع دهد که فروشگاه از کوکی ها استفاده می کند.
مزیت اصلی پروتکل HTTPS این است که فروشگاه را برای بازدیدکنندگان بسیار ایمن تر می کند. به ویژه، فرآیند انتقال داده های مشتری به فروشگاه اینترنتی. جنبه چنین ایمنی به ویژه برای منابعی که نیاز به پر کردن جزئیات کارت اعتباری یا سایر اطلاعات شخصی حساس دارند، بسیار جدی است.
ایمنی داده ها توسط پروتکل های رمزنگاری SSL/TLS که دارای 3 سطح امنیتی هستند تضمین می شود:
- رمزگذاری داده ها، که از رهگیری داده ها جلوگیری می کند.
- یکپارچگی داده، که هر تغییر در اطلاعات را مستند می کند.
- احراز هویت، که کاربر را از تغییر مسیر باز می دارد.
تفاوت بین HTTP و HTTPS:
HTTPS یک پروتکل انتقال داده جداگانه نیست، بلکه نسخه ای امن از پروتکل HTTP است.
داده های منتقل شده از طریق پروتکل HTTP ایمن نیستند، در حالی که HTTPS اطلاعات را رمزگذاری می کند و در نتیجه آن را ایمن می کند.
HTTP از پورت 80، HTTPS – پورت 443 استفاده می کند.
SQL Injection در پرستاشاپ
تزریق SQL : یکی از روش های رایج هک کردن وب سایت است. این کار با قرار دادن در داده ها، از طریق GET و POST یا Cookie، یک کد SQL مخرب، منتقل می شود.
در اینجا نمونه هایی از تزریق های اولیه SQL آورده شده است:
- جمع کردن شرایط WHERE به نتیجه واقعی با وجود مقادیر پارامتر.
- پیوستن به یک پرس و جو نتایج یک پرس و جو دیگر از طریق عملگر UNION.
- اظهار نظر در مورد بخشی از یک پرس و جو.
- محافظت در برابر تزریق SQL پیچیده نیست و به طور خلاصه شامل زیر نظر گرفتن انواع دادهها، تبدیل اعداد به نوع دادههای عددی و محصور کردن خطوط به بک اسلش (\) است (این روش غربالگری نامیده میشود). همچنین، PrestaShop ORM اجازه می دهد تا بدون غربال کردن، درخواست ها را انجام دهید.
مثال:
ما یک درخواست اطلاعات از طریق id
?id=1 داریم
SELECT id، نام از جدولی که id =1 است.
اما از آنجایی که نوع کستینگ وجود ندارد، میتوانیم نوع داده زیر را از طریق تزریق SQL انتقال دهیم.
/?id=1+union+select+0,concat_ws(0x3a,table_name,column_name)+from+information_s chema.columns
در این حالت کوئری SQL به صورت زیر خواهد بود:
SELECT id، نام از جدول که id =1 union 0,concat_ws(0x3a,table_name,column_name) را از information_schema.columns انتخاب کنید
علاوه بر این، صاحب فروشگاه باید از Blind SQL Injection که اغلب برای بدست آوردن رمز عبور پیاده سازی می شود، آگاه باشد.
/?id=1+AND+555=if(ord(mid((انتخاب+گذر+از+کاربران+محدود+0,1),1,1))=97,555,777)
SELECT id، نام از جدول که در آن id =1 AND 555=if(ord(mid((انتخاب پاس از محدودیت کاربران 0,1),1,1))=97,555,777)
در صورتی که جدول کاربران حاوی ستون پاس باشد و اولین نماد ورودی اول برابر با 97 باشد (نماد “a”)، DBMS TRUE را برمی گرداند . در غیر این صورت، FALSE خواهد بود .
نمونه دیگری از تزریق SQL خواندن فایل ها است:
union select load_file('/etc/passwd')
اسکریپت بین سایتی در پرستاشاپ
یکی از محبوب ترین انواع حملات، برنامه نویسی متقابل جاوا اسکریپت است. این یک نوع حمله است که کدهای مخرب را به یک سیستم وب تزریق می کند و آن را مجبور به انتشار داده های تغییر یافته، جایگزینی پیوندها (قابل مشاهده / پنهان) یا نمایش تبلیغات خود در منبع آسیب دیده می کند.
با ترکیبی از تگ ها و نمادها، یک هکر چنین درخواستی را ایجاد می کند که سایت آن را درک کرده و به عنوان یک دستور اجرا می کند. هنگامی که یک نقض امنیتی پیدا شد، آنها می توانند کدهای مخرب را به درخواست ضمیمه کنند، که به عنوان مثال، کوکی ها را می دزدد و برای هکر ارسال می کند.
با استفاده از برنامه نویسی متقابل سایت، یک فرد می تواند:
- کد مخرب را در پیام وارد کنید.
- اسکریپت هایی را برای سرقت کوکی های سرپرست از یک دامنه مخرب آپلود کنید.
- پس از دریافت کوکی، مهاجم میتواند بهعنوان مدیر وارد شود که به آنها دست برای حملات بعدی باز میدهد. علاوه بر این، یک مهاجم می تواند یک مرورگر مدیر را متصل کرده و اکسپلویت های مرورگر را راه اندازی کند.
- بیشتر آسیبپذیریها با پردازش نادرست دادههای دریافتشده از خارج یا بررسی ناکافی دادهها مرتبط است.
برای ایمن کردن فروشگاه پرستاشاپ خود از اسکریپت های متقابل سایت، می توانید اقدامات زیر را انجام دهید:
1. فیلتر باید تمام ترکیبات ممکن کاراکتر را در نظر بگیرد. یکی از بررسی های ساده آسیب پذیری xss استفاده از براکت های باز و بسته است.
مثلا:
“/?, #” >>>> << script {()}
برای امنیت، حفاظت از داده های ورودی/خروجی را اجرا کنید. برای این کار، می توانید از توابع داخلی برای پاک کردن کد از اسکریپت های مخرب استفاده کنید. اینها شامل توابعی مانند htmlspecialchar () ، htmlentities ( ) و strip_tags () ، addslashes () است.
2. پرچم HttpOnly را تنظیم کنید. این پرچم کوکی های مشتری را از طریق جاوا اسکریپت غیر قابل دسترس می کند. این تنظیمات در php.ini فعال می شود:
session.cookie_httponly = True
3. از سیاست امنیتی محتوا استفاده کنید.
این به شما امکان میدهد فهرستی از منابعی را که میتوانید از آنها دادههای مختلف، به عنوان مثال، JS، CSS، تصاویر و فایلهای دیگر را بارگیری کنید، اعلام کنید. حتی اگر هکر بتواند اسکریپت را به یک صفحه وب تزریق کند، اگر با لیست منابع مجاز مطابقت نداشته باشد، اجرا نمی شود.
4. رمزگذاری را در هر صفحه مشخص کنید.
header ("Content-Type: text / html; charset = utf-8");
5. تنظیم مجوز روی پوشه ها و فایل ها.
6. بستن پورت های سرور. پس از نصب و پیکربندی سرور، ممکن است برخی از پورت ها باز بماند و هکرها می توانند از آنها استفاده کنند. بنابراین توصیه می شود پورت ها را مسدود یا فیلتر کنید.
خلاصه
متأسفانه، هیچ راه حل کاملی وجود ندارد و هر ماژول جدید، یک افزونه ممکن است دارای مشکلاتی باشد. بنابراین، همیشه مراقب داده هایی که به فروشگاه اضافه می کنید باشید. حتی اگر پلاگین یا تم مورد تایید و تایید توسعه دهندگان پلتفرم باشد، بهتر است دوباره بررسی شود.
یک چیز واضح است ، یک فروشگاه اینترنتی باید در برابر هکرها و حوادث امنیتی محافظت شود. بنابراین لازم است تدابیر امنیتی مناسب ایجاد شود و از منابع اضافی برای افزایش امنیت استفاده شود.
با تیم متخصص متاوبز در ارتباط باشید تا در این راه همراهیتان کنیم.