CMS Eleanor - Поиск
Полная версия этой страницы: Официальный форум Eleanor CMS » Eleanor htaccess для базовой защиты.
Официальный форум Eleanor CMS » Поддержка пользователей системы Eleanor CMS » Секреты и советы
Страницы: 1, 2
Destroy
Вобшем выкладываю свою сборки для eleanor, пользуйтесь:

## Включение mod_rewrite
RewriteEngine On
##

## Корневая директория
RewriteBase /
##

## Индексная страница
DirectoryIndex index.php 
#

## Кодировки по умолчанию
AddDefaultCharset utf-8
##

## Редирект с WWW на без WWW
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
##

## Редирект адресов с index.php на без index.php
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,L]
##

## Редирект на новую категорию
#RewriteRule ^старая/(.*)$ /новая/$1 [R=301,L]
##

## Запрет листинга и просмотра директорий
Options All -ExecCGI -Indexes -Includes +FollowSymLinks
##

## Настройки сервера
ServerSignature Off
php_value safe_mode 0
php_flag file_uploads 1
php_value display_errors 0
php_value register_globals 0
php_value output_buffering 0
php_value magic_quotes_gpc 0
php_value allow_url_fopen 0
php_flag magic_quotes_runtime 0
php_value upload_max_filesize 5M
##

## Правила обработки запросов для блокировки распространенных эксплоитов
RewriteCond %{QUERY_STRING} proc/self/environ [OR]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_(en|de)code\(.*\) [OR]
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
##

## Блокирование MySQL инъекций
RewriteCond %{query_string} concat.*\( [NC,OR]
RewriteCond %{query_string} union.*select.*\( [NC,OR]
RewriteCond %{query_string} union.*all.*select [NC]
RewriteRule ^(.*)$ index.php [F,L]
##

## Блокировка файловых инъекций 
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
RewriteRule .* - [F]
##

## Редирект для чужих доменов
RewriteCond %{HTTP_HOST} !^eleanors\.ru$
RewriteRule ^(.*)$ http://eleanors.ru/$1 [R=301,L]
##

## Правила для скачивания: отдаем любой контент только через скрипт
RewriteRule ^uploads/(.*)$ download.php?download=$1 [L]
##

#Если запрашиваемый ресурс не папка и не файл - это ЧПУ
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
##

## Правило обработки изображений
RewriteCond %{REQUEST_URI} !\.(css|js|jpe?g|gif|png|bmp)$
RewriteRule ^(.*)$ index.php?!$1!&%{QUERY_STRING} [L]
##


Если есть косяки просьба указать.
Alexander
Цитата (Destroy @ 2024-05-20 22:48)
Блокирование прямого доступа к ядру

В этом нет совершенно никакого смысла. Я уже обо всем позаботился до вас :)
Destroy
Цитата (Alexander @ 2013-06-30, 18:25)
В этом нет совершенно никакого смысла. Я уже обо всем позаботился до вас :)


Отлично, значит убираю, ибо не грузит лишний раз)
Цитата (Destroy @ 2013-06-30, 18:30)
Отлично, значит убираю, ибо не грузит лишний раз)

хотелось бы всё таки увидеть вашу реализацию
Alexander
Quber, судя по всему, вы ко мне обращались. Моя реализация заключается в добавлении строк
if(!defined('CMS'))die;

Во все файлы. Таким образом, напрямую обратится к такому файлу нельзя.
Destroy
Цитата (Alexander @ 2013-07-01, 18:47)
Quber, судя по всему, вы ко мне обращались. Моя реализация заключается в добавлении строк
if(!defined(&apos;CMS&apos;))die;

Во все файлы. Таким образом, напрямую обратится к такому файлу нельзя.


а если залили шел? у этого файла нет данной строки.
Alexander
Цитата (Destroy @ 2024-05-20 22:48)
а если залили шел? у этого файла нет данной строки.

Если залили шел, то, очевидно и другую защиту удалят запросто.
Destroy
Удалят если права не 444.
А если получили доступ только к одной папке, например к "templates" и залили туда?
Или взломали админку, вошли в редактор шаблона вставили в файл шаблона шел. как в таком случаи?
Alexander
Цитата (Destroy @ 2024-05-20 22:48)
А если получили доступ только к одной папке, например к "templates" и залили туда?

Я не считаю "а если..." аргументом, потому что в таком случае, доступ могут получить куда угодно. Почему именно в каталог с шаблонами?
Destroy
Цитата (Alexander @ 2013-07-01, 19:56)
Я не считаю "а если..." аргументом, потому что в таком случае, доступ могут получить куда угодно. Почему именно в каталог с шаблонами?


ну например у меня разрешен доступ по фтп только к шаблонам.

если вы не считаете "а если" сочувствую...
Alexander
Цитата (Destroy @ 2024-05-20 22:48)
ну например у меня разрешен доступ по фтп только к шаблонам.

Вот и докопались до истины. Но, спешу разочаровать, если у вас есть по FTP доступ к шаблонам "Блокирование прямого доступа к ядру" из главного .htaccess вас не спасет.

Цитата (Destroy @ 2024-05-20 22:48)
если вы не считаете "а если" сочувствую...

Я не нуждаюсь в вашем сочувствии.
Destroy
Цитата (Alexander @ 2013-07-01, 20:14)
"Блокирование прямого доступа к ядру" из главного .htaccess вас не спасет.

С чего вы так решили?



Добавлено через 9 минут, 3 секунд:

Цитата (Destroy @ 2013-07-01, 20:22)
"Блокирование прямого доступа к ядру" из главного .htaccess вас не спасет.
С чего вы так решили?


я залил шел в директорию "templates" и свободно его запустил. с вашим стандартным htaccess
потом я заменил его на свой первоначальный.
И я не смог запустить шел так как он был блокирован

RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.php [NC]
RewriteCond %{REQUEST_URI} \/templates\/
RewriteRule ^(.*)$ index.php [R=404,L]
##
Alexander
Destroy, ну что, мне вас еще хакингу учить? Пфф... Залили shell.php в каталог с шаблонами, это раз. Правим файл index.php шаблона, дописываем строку типа (это два):

rename('templates/shell.php','shell.php');

Заходим на site.ru/shell.php и радуемся жизни (это три).
Destroy
Цитата (Alexander @ 2013-07-01, 20:37)
Destroy, ну что, мне вас еще хакингу учить? Пфф... Залили shell.php в каталог с шаблонами, это раз. Правим файл index.php шаблона, дописываем строку типа (это два):

rename('templates/shell.php','shell.php');

Заходим на site.ru/shell.php и радуемся жизни (это три).


что за бред... каким образом вы выполните php? если он не запуститься на прямую?
Сами то попробуйте для начала.
Alexander
Цитата (Destroy @ 2024-05-20 22:48)
каким образом вы выполните php?

Просто зайду на сайт. Сайт обязательно выполнит шаблон index.php
Destroy
Цитата (Alexander @ 2013-07-01, 20:53)
Просто зайду на сайт. Сайт обязательно выполнит шаблон index.php


Да верно... Не подумал. &lt;_&lt;
Alexander
Destroy, я уже молчу о том, что скорее всего есть возможность создать еще и свой .htaccess, который "затрет" правила из каталога выше. В общем, если есть доступ по FTP, то сайт, считайте сломан.
Цитата (Alexander @ 2013-07-01, 18:47)
Quber, судя по всему, вы ко мне обращались. Моя реализация заключается в добавлении строк
if(!defined('CMS'))die;

Во все файлы. Таким образом, напрямую обратится к такому файлу нельзя.

Я видел Вашу реализацию. Встречал в некоторых других движках аналогичную. Я хотел узнать у Destroy про htaccess, я специально его прокомментировал :) Но всё равно спасибо за ответ :)
Ответ будет или нет?
termit
А не проще просто всё перенаправлять на index.php, кроме статики разумеется ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.