robot-txt-joomla-3Ломанули сайт. Начал искать способы избежать подобных неприятностей в будущем. 


Вот мой вариант


1. Обновить CMS до последней версии
2. Обновить все расширения до актуальных версий
3. Создать файл .htaccess



##
# @version $Id: htaccess.txt 21064 2011-04-03 22:12:19Z dextercowley $
# @package Joomla RE
# @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
# Joomla! - свободное программное обеспечение.
# Последнее изменение этого файла - 09.04.2015
##
# Установка кодировки сайта по умолчанию. При необходимости, закомментируйте.
# Строка решает проблему с "крякозябрами" в редакторе TinyMCE и текста лицензии при установке
# на Денвере и некоторых серверах с жестко прописанной кодировкой. Это на 99,9% работающее решение.
# После переименования этого файла htaccess.txt в .htaccess проблема решится.
# Если проблема осталась - перечитайте предыдущее предложение (возможно неправильно переименовали).
AddDefaultCharset utf-8
# Следующие строки - попытка исправить настройки PHP
# для полного соответствия системным требованиям Joomla.
# Раскомментируйте (символ комментария - #) нужные строки,
# если настройки вашего хоста не соответствуют рекомендациям
# системных требований Joomla.
# При возникновении 500 ошибки сервера, закомментируйте строку, вызывающую
# ошибку, или все строки с php_flag.
# php_flag register_globals Off
# php_flag display_errors Off
# php_flag file_uploads On
# php_flag allow_url_fopen off
# php_flag magic_quotes_gpc On
# php_flag magic_quotes_runtime Off
# Пример явного указания каталога для записи сессий:
# Для Windows - c:/temp
# для UNIX - /tmp
# Указанный каталог должен физически существовать и быть доступен для записи
# При необходимости, раскомментируйте строку ниже этой
# php_value session.save_path c:/temp
#####################################################
# ПРОЧТИТЕ ПОЛНОСТЬЮ, ЕСЛИ БУДЕТЕ ИСПОЛЬЗОВАТЬ ЭТОТ ФАЙЛ
#
# Строка ниже этого раздела: 'Options +FollowSymLinks' может вызвать проблему
# при некоторых конфигурациях сервера. Она необходима для использования модуля
# Apache mod_rewrite, но может быть уже настроена администратором вашего
# сервера и изменение этого параметра в .htaccess может быть запрещено.
# Если эта директива вызывает ошибку сервера, то закомментируйте строку
# (добавьте символ # в начало строки), перезагрузите в браузере сайт и
# протестируйте работу SEF-ссылок. Если они работают, то вам не надо ничего
# менять здесь, т.к. всё уже настроено администратором сервера.
#
# Строки, которые можно раскомментирвать (и использовать) имеют только один #.
# Строки с двумя символами ## раскомментировать не надо. В разделах, которые вы
# не используете, все строки должны начинаться с символа #
#
#####################################################
## Может быть закомментировано, если вызывает ошибку сервера. Смотрите примечания выше.
Options +FollowSymLinks
#
# Включение mod_rewrite
RewriteEngine On
## Начало - Запрет на выполнение php-скриптов - не работает
#<IfModule mod_php5.c>
#php_flag engine 0
#</IfModule>
## Конец - Запрет на выполнение php-скриптов
## Начало - Запрет на выполнение php-скриптов в корне сайта
<Filesmatch ".(php)$">
order deny,allow
deny from all
</Filesmatch>
<Filesmatch "^index.php">
order allow,deny
allow from all
</Filesmatch>
<Filesmatch "^index2.php">
order deny,allow
allow from all
</Filesmatch>
## Конец - Запрет на выполнение php-скриптов в корне сайта
########## Начало - Правила обработки запросов для блокировки распространенных эксплоитов
## Если у вас возникли проблемы с вашим сайтом, используйте ниже описанные операции
## Они пытаются заблокировать самые распространенные эксплоиты Joomla!
#
## Код запрета доступа к xml-файлам расширений (раскомментируйте для активации)
<Files ~ "\.xml$">
Order allow,deny
Deny from all
Satisfy all
</Files>
## Конец кода запрета доступа к xml-файлам
# Блокировать любой запрос, пытающийся установить значение mosConfig через URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Блокировать любой запрос, пытающийся испортить base64_encode через URL
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Блокировать любой запрос, содержащий тег <script> в URL
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Блокировать любой запрос, пытающийся установить значение глобальных переменных PHP через URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Блокировать любой запрос, пытающийся изменить _REQUEST переменную через URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Перенаправлять заблокированные запросы на страницу 403 с запрещенными ошибками!
RewriteRule .* index.php [F]
#
########## Конец правил обработки для блокировки распространенных эксплоитов
# Раскомментируйте следующую строку, если URL вашего web-сервера
# не связаны напрямую с физическими путями файлов.
# Обновите ваш каталог Joomla (используйте "/" для обозначения корня сервера)
# RewriteBase /
######### Начало раздела SEF ядра Joomla!
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# Если запрошенный путь и файл не содержат /index.php и запрос еще
# не был перенаправлен на скрипт index.php
RewriteCond %{REQUEST_URI} !^/index\.php
# и запрашивается URL корня или расширения, или
# запрашиваемый URL оканчивается на одно из перечисленных расширений
RewriteCond %{REQUEST_URI} (/[^.]*|\.(php|html?|feed|pdf|raw))$ [NC]
# и запрошенный путь не соответствует пути к физическому файлу
RewriteCond %{REQUEST_FILENAME} !-f
# и запрошенный путь не соответствует пути к физической папке
RewriteCond %{REQUEST_FILENAME} !-d
# то перенаправить запрос на скрипт index.php
RewriteRule .* index.php [L]
#
########## Конец раздела SEF ядра Joomla!

Отличается от стандартного. Добавлены строки 69-88
4. Включить стандартный SEF, либо стороннее ЧПУ
5. ---
6. Удалить признаки Joomla:
В версии 2.5 идем по пути: ВАШ_САЙТ/libraries/ Joomla /document/html/renderer/ и в файле head.php находим 99 стр.:
$buffer .= $tab . '<meta name="generator" content="' . htmlspecialchars($generator). '" />' . $lnEnd; комментируем или удаляем.
7. Сменить префиксы в БД и файле configuration.php
8. Удалить не нужные шаблоны, модули, компоненты и плагины (а также их папки и языковые файлы в админке и корне, ну и оставшиеся таблицы в БД, если остались)
9. Заменить JCE (плагины, компоненты), удалить папки и файлы (admin/languages/Ru-ru – 5 файлов JCE +файлы шаблонов админики) и (languages – файлы JCE + файлы шаблонов)
10. Создать файл .htaccess (папка-2), запрещающий выполнение скриптов и добавить его во все папки в корне сайта (защита от Бекдора). Содержимое файла:
<Files ~ ".(php)$">
Deny from all
</Files>
11. Вынести файл configuration.php за пределы www-директории (у некоторых она называется public_html). Для этого копируем его за ее пределы, возможно рядом с ней, переименовываем например его в "joomla.conf" (это к примеру), а в том, что должен быть в корне Joomla (он будет называться все также - configuration.php) пишем нечто вроде этого:
require( dirname( __FILE__ ). '/../joomla.conf' );
?>
12. Установить компонент Admin Tools – сменить ID администратора, с его помощью или в ручную очистить содержимое папки tmp (в корне сайта). С его же помощью можно изменить префиксы таблиц и с помощью сервера закрыть прямой доступ к панели администратора.
13. Создать сложный логин и пароль доступа (Super User) в панели доступа администратора.
14. Если не на сайте используется модуль регистрации пользователей, то лучше удалить файлы, которые отвечают за восстановление пароля и его сброс. Можно удалить или всю папку com_user (которая находится по пути ВАШ_САЙТ/components) или отдельный файл, отвечающий за сброс - reset.php. Этот файл находится по пути ВАШ_САЙТ/components/com_user/models.
15. Установить права на файлы и папки: на файлы, которые находятся в корневой директории 444, на папки в корневой директории ставят 755, на папки tmp и logs ставят 705, на папку своего шаблона поставьте 555, на папку image/stories можно поставить 755, на папку Cache 777.
16. В настройках PHP вашего хостинга нужно запретить работать с удаленными файлами как с ссылками (allow_url_fopen = Off), содержимое файла которое пытались загрузить ни что иное как Shell при помощи которого взломщики получают доступ к вашему сайту через удаленный шелл, даже не загружая его на ваш сайт.
17. Читал, что есть вариант запрета выполнения скриптов в корне сайта (но у меня не работает тогда админка). Добавить в файл .htaccess код:
<IfModule mod_php5.c>
php_flag engine 0
</IfModule>
18. Еще есть вопросы по защите таких директорий как images, media и templates.

Что еще я упустил?

__________________________________________________________________________________________________________________

скачать joomla | обновление joomla | модуль joomla | администрирование | seo продвижение | joomla магазиншаблоны сайтов

обратная связь 

При копировании материала ссылка на сайт joomla4.ru обязательна.