Статьи

Полное руководство по безопасности Magento

Хотя безопасность всех веб-сайтов важна, безопасность веб-сайта электронной коммерции особенно важна, поскольку эти сайты хранят данные пользователей и финансовую информацию, связанную с заказами. Любая попытка взлома таких данных может нанести огромный ущерб вашему магазину. Несмотря на то, что Magento считается самой безопасной и надежной системой электронной коммерции, все же есть некоторые дополнительные меры безопасности, которые помогут сделать ее защиту надежной. В этой статье я рассмотрел несколько простых шагов, которые помогут сделать ваш магазин Magento еще более безопасным и надежным.

Одним из первых шагов по обеспечению безопасности вашего сайта Magento является использование безопасного имени пользователя и пароля. Основное правило для создания надежного пароля — всегда использовать пароль, который трудно угадать, например, такие строки, как «123» или «abc», или ваш номер телефона, дату рождения и т. Д. Это всегда лучшая практика. хранить пароль длиннее восьми символов, и это должно быть сочетание букв (a, b, c и т. д.), цифр (1, 2, 3 и т. д.) и специальных символов (@, &, # и т. д. .).

Помимо наличия безопасного пароля, также очень важно создать имя пользователя, которое не легко предсказать. Большинство попыток взлома увенчались успехом, потому что хакерам нужно только угадать пароль, поскольку в качестве имен пользователей в большинстве случаев используются простые для угадывания имена, такие как «admin», «administrator» и т. Д.

Поэтому я настоятельно советую вам создавать неуниверсальные имена пользователей, такие как ваш псевдоним, фамилия, название компании и т. Д. Существует возможность создать имя пользователя во время установки Magento, но даже после установки вы можете изменить свое имя пользователя Magento и пароль, перейдя в Система> Моя учетная запись.

Magento Изменение имени пользователя Пароль

По умолчанию путь админ-панели для Magento выглядит следующим образом: http://myexamplestore.com/admin . Поскольку это довольно известный путь для всех, он подвержен множеству угроз безопасности. Если мы изменим путь администратора на уникальный и непредсказуемый путь, такой как http://myexamplestore.com/secureadmin , мы сможем пресечь большинство попыток взлома в зародыше. Этот небольшой шаг может внести значительный вклад в повышение безопасности установки Magento и стать лучшей защитой от сломанных атак аутентификации и управления сеансами.

Чтобы изменить путь администратора в Magento, перейдите в файл app/etc/local.xml , найдите строку с этим кодом: <![CDATA[admin]]> и измените строку admin на требуемую строку администратора. Например, если вы хотите изменить URL-адрес панели администратора на http://myexamplestore.com/securedadmin , измените код CDATA на <![CDATA[securedadmin]]>

Обычный способ повышения безопасности любой системы — добавить к ней еще один уровень безопасности с помощью двухфакторной аутентификации, когда система требует двух отдельных аутентификаций для предоставления доступа.

Простым примером этого является проверка подлинности карты банкомата. Вы должны не только ввести свою карту в качестве одного из факторов аутентификации, но также и свой PIN-код, который является еще одним фактором аутентификации, следовательно, двухфакторной аутентификации.

Есть несколько отличных расширений, которые позволяют двухфакторную аутентификацию в Magento и делают ее намного более безопасной.

Одним из таких расширений Magento является Rubon . Позволяет добавлять доверенные смартфоны, с помощью которых вы можете получить доступ к админ-панели Magento. Другой — это Extendware , который добавляет двухфакторную аутентификацию в вашу систему через Google Authenticator. Оба они очень хорошие дополнения, и стоит попробовать.

Еще один довольно простой в реализации шаг безопасности Magento — включить защищенные URL-адреса HTTPS / SSL.

Всякий раз, когда данные передаются между вами и вашим сервером, существует риск того, что эти данные будут перехвачены третьими лицами. Поскольку эти данные могут содержать важную информацию, такую ​​как данные для входа в систему, информацию о базе данных и т. Д., Эти данные, попавшие в чужие руки, могут вызвать значительные проблемы.

Поэтому для передачи данных всегда полезно использовать безопасное зашифрованное соединение. Обеспечение шифрования вашего сайта по протоколу HTTPS / SSL также сделает его PCI-совместимым и более надежным в глазах ваших клиентов.

Вы можете сделать это в Magento, просто перейдя в System> Configuration> General> Web. В поле «Базовый URL» измените «http» на «https» и включите « Использовать безопасные URL-адреса в веб- интерфейсе» и « Использовать безопасные URL-адреса» в «Admin».

Magento Включение безопасного URL

Хотя важно зашифровать и обезопасить передачу данных между вашим браузером и вашим сервером, важно также обеспечить передачу данных на ваш сервер через FTP. Одним из распространенных способов взлома интернет-сайтов является перехват паролей FTP. Эта проблема безопасности может быть эффективно проверена с помощью SFTP (SSH File Protocols). Этот протокол обеспечивает дополнительное шифрование учетных данных пользователя с использованием файла секретного ключа для проверки подлинности. Вы также должны убедиться, что ваши права доступа к файлам не установлены на 777, так как это сделает их доступными для записи кем-либо и создаст угрозу безопасности.

В Magento есть опция, с помощью которой мы можем заранее определить IP-адреса, которые могут получить доступ к админ-панели Magento. Этот шаг может добавить большой уровень безопасности в ваш магазин Magento. Вы можете создать список IP-адресов компьютеров вашего и ваших коллег и добавить их в список IP-адресов, которые могут получить доступ к панели администратора вашего сайта Magento. Все остальные пользователи IP-адресов не смогут получить доступ к вашей админ-панели Magento.

Чтобы включить это ограничение IP-адресов, прежде всего вам нужно отредактировать ваш файл .htaccess, чтобы ввести IP-адреса, которые вы хотите разрешить. Для этого введите следующий код в файл .htaccess:

1
2
3
4
5
6
7
8
AuthName «Protected Area»
AuthType Basic
<Limit GET POST>
order deny,allow
deny from all
allow from 192.168.112.11
allow from 168.121
</Limit>

Здесь будет разрешен IP-адрес «192.168.112.11», и, во-вторых, будут разрешены все IP-адреса, начинающиеся с «168.121». Вы можете разрешить столько IP-адресов, сколько хотите, следуя этому формату. Всем другим IP-адресам, не упомянутым там, будет отказано в доступе.

Следующим шагом является создание новой папки «admin» в корневом каталоге Magento. Скопируйте файл index.php вашего Magento в эту папку и измените относительные пути к файлам config.php и Mage.php, изменив эти две строки:

1
2
$compilerConfig = ‘../includes/config.php’;
$mageFilename = ‘../app/Mage.php’;

Обратите внимание, мы только добавили ../ в эти пути к файлам.

Теперь мы должны направить пользователей, приходящих к нашим администраторам, в этот каталог. Для этого введите эти строки в ваш файл .htaccess:

1
2
Redirect permanent /index.php/{admin_path} /admin/index.php/{admin_path}
Redirect 301 /index.php/{admin_path} /admin/index.php/{admin_path}

Здесь {admin_path} указывает новый путь администратора, который мы вручную изменили на шаге 2. Например, он может быть securedadmin , как мы определили в примере на шаге 2.

Обратите внимание, что этот шаг безопасности следует реализовывать только в том случае, если ваш провайдер предоставляет вам статический IP-адрес. Некоторые интернет-провайдеры назначают пользователям динамические IP-адреса каждый раз, когда они подключаются к Интернету. В таких случаях, поскольку ваш IP-адрес постоянно меняется, вам не следует реализовывать этот шаг безопасности.

Некоторые функции PHP более подвержены внедрению вирусов и представляют угрозу безопасности. Лучше всего сначала отключить эти вредоносные функции PHP. Если ваш код основан на каких-либо таких функциях, лучший способ — использовать какую-то альтернативную, более безопасную функцию с аналогичными функциями. Чтобы отключить такие вредоносные функции, откройте файл php.ini и добавьте в него следующий код:

1
disable_functions = “apache_child_terminate, apache_setenv, define_syslog_variables, escapeshellarg, escapeshellcmd, eval, exec, fp, fput, ftp_connect, ftp_exec, ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist, highlight_file, ini_alter, ini_get_all, ini_restore, inject_code, mysql_pconnect, openlog, passthru, php_uname, phpAds_remoteInfo, phpAds_XmlRpc, phpAds_xmlrpcDecode, phpAds_xmlrpcEncode, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setuid, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, syslog, system, xmlrpc_entity_decode”

Если у вас уже есть некоторые функции отключения кода в вашем файле php.ini, просто добавьте функции, приведенные в приведенном выше коде. Если какая-либо из вышеупомянутых функций действительно важна для файлов вашей темы / модуля, и вы не можете найти альтернативу, вы можете исключить их из этого списка.

Список каталогов — еще одна лазейка во многих серверах. Через список каталогов любой может ввести URL-адрес вашего сайта и увидеть структуру каталогов и расположение файлов на всем вашем сайте (как на скриншоте ниже). Это может сделать ваш сайт очень уязвимым для атак безопасности.

Magento Directory Indexing
Кредит Фотографии: Красный Леопард

Эту лазейку можно эффективно закрыть, отключив индексацию каталогов. Для этого добавьте следующую строку кода в ваш файл .htaccess:

1
Options -Indexes

Как и в любой другой системе электронной коммерции, на веб-сайтах Magento есть много полей формы, в которые пользователи могут вводить данные, такие как поля заказа, поля профиля, поля отзывов клиентов и т. Д. Иногда хакеры используют эти поля для внедрения оператора MySQL, что может в результате раскрыть внутреннюю технологию информация, или может разрешить доступ к ограниченным областям сайта. Хотя Magento отлично справляется с любой подобной атакой, все же рекомендуется использовать брандмауэры веб-приложений, чтобы обеспечить защиту вашего веб-сайта от любых подобных атак.

Есть еще много способов сделать вашу установку Magento еще более безопасной, но я уверен, что если вы выполните все вышеперечисленные шаги, у вас будет очень надежный и безопасный сайт Magento, который сможет выдержать большинство попыток взлома.

Помимо вышеупомянутых шагов, один очевидный способ сделать ваш сайт Magento более безопасным — постоянно обновлять установку Magento. Команда Magento отлично справляется с исправлением возможных уязвимостей, поэтому последняя версия Magento обычно лучше и безопаснее. Вы также должны сохранять свой адрес электронной почты, связанный с Magento, безопасным, поскольку любой, кто может получить доступ к этому адресу электронной почты, может получить доступ к вашему магазину Magento.

В комментариях делитесь своими мыслями и отзывами об этой статье, и не забывайте делиться ею с друзьями, если вам это нравится.