PHP: Пишем ошибки в файл

PHP
Все php ошибки нужно обязательно записывать в лог, и регулярно изучать его. Иначе есть шанс пропустить часть багов, которые появляются например перед редиректом и не выводятся на экран. По умолчанию, запись ошибок в файл отключена, но есть несколько способов это исправить:

Способ 1 — изменить php.ini:
log_errors = On
error_log = /var/log/php_errors.log

Способ 2 — добавить в .htaccess:
php_value log_errors "On"
php_value error_log /var/log/php_errors.log

Способ 3 — добавить в самое начало php скрипта:
ini_set('log_errors', 'On');
ini_set('error_log', '/var/log/php_errors.log');

Как сделать статическую страницу главной в DLE?

DLE
Нет ничего проще =)

Создаешь статическую страницу, записываешь её адрес, например: page_static1.html
Редактируешь файл .htaccess в корне, и в самом верху
DirectoryIndex index.php?do=static&page=page_static1


Если же в файле нет такой строки, она обычно первая, то просто добавь её, и все.

Защита папок скрипта от запуска сторонних скриптов

DLE
Дорогие друзья,

в этой небольшой статье мы хотим рассказать вам о том как, как вам можно повысить безопасность вашего сайта. Как известно наибольшую угрозу для сайта представляют собой залитые злоумышленником на сервер PHP шеллы. Что это такое? Это PHP скрипты которые могут выполняться на вашем сервере, соответственно производить какие-либо изменения в файлах доступных для записи или могут, например читать содержимое конфигурационных данных и соответственно получать прямой доступ к базе данных. Каким образом могут попадать данные шеллы на ваш сервер? При обнаружении какой либо уязвимости в скрипте, или сторонних модулях, или вообще при наличии других уязвимых сторонних скриптов на сервере, или серверного ПО. Главная особенность заключается в том, что шеллы можно залить не в любые папки на сервере, а лишь в папки доступные для записи на сервере, и в DataLife Engine такими папками являются папки /uploads/ и /templates/, а также все вложенные в них папки. Данные папки должны иметь права на запись, т.к. вы в них заливаете посредством скрипта легальный контент, файлы, картинки, редактируете в админпанели шаблоны и прочее. И как правило в эти папки производится загрузка шеллов при обнаружении злоумышленником какой либо бреши на сервере в любом скрипте, даже не имеющем отношения к DataLife Engine. Можно ли защитить эти папки, в случае попадания в них зловредного PHP файла, ведь нельзя запретить доступ к этим папкам? Можно, и достаточно не сложно.

Итак, вам необходимо разместить в папках /uploads/ и /templates/ файл .htaccess со следующим содержимым:
php_flag engine  off


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

К сожалению далеко не все хостинг провайдеры позволяют управлять через .htaccess данным параметром, но для таких сайтов решение также существует, поэтому если на вашем сервере не работает вышеуказанный способ, то разместите в этих же папках .htaccess с содержимым:
<FilesMatch "\.([Pp][Hh][Pp]|[Cc][Gg][Ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll])\.?.*">
   Order allow,deny
   Deny from all
</FilesMatch>


Данный код запрещает прямое обращение к PHP файлам, находящимся в этих папках.

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

Но если им удастся получить доступ к вашей админ панели, и они попытается разрешить заливку php скриптов.
Для подстраховки можно сделать так.
Открыть: engine/inc/files.php и найти там

$allowed_extensions = array ("gif", "jpg", "png", "jpe", "jpeg" );
$allowed_video = array ("avi", "mp4", "wmv", "mpg", "flv", "mp3", "swf", "m4v", "m4a", "mov", "3gp", "f4v" );
$allowed_files = explode( ',', strtolower( $config['files_type'] ) );
$img_result_th = "";
$img_result = "";


Найденное заменяем на:

$allowed_extensions = array ("gif", "jpg", "png", "jpe", "jpeg" );
$allowed_video = array ("avi", "mp4", "wmv", "mpg", "flv", "mp3", "swf", "m4v", "m4a", "mov", "3gp", "f4v" );
$allow_conf = str_replace("php",md5(time() - rand(30,60)),strtolower( $config['files_type'] ));
$allowed_files = explode( ',', $allow_conf );
$img_result_th = "";
$img_result = "";


После этого вы очень сильно усложните заливку шелла на сайт, и сможете наконец спать спокойно!

Xcloner-Клонирование и полный бэкап сайта на WordPress.

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

Читать дальше →

Распространенные ошибки Joomla и способы их решения

Распространенные ошибки Joomla и способы их решения
Эта статья содержит описание и способы избавления от наиболее распространенных ошибок, которые возникают в процессе установки и администрирования сайта на CMS Joomla! 1.5. Типичные ошибки ранних версий Joomla! 1.5.x в статье приводится не будут — для их решения достаточно обновится до последней актуальной версии — Joomla! 1.5.15.
Итак, начнем. Если у Вас версия Joomla! ниже 1.5.15, то вам необходимо обновить ядро:
1. Смотрим, какая версия Joomla! у нас установлена — в правом верхнем углу административной части сайта будут заветные циферки — например «Версия 1.5.12».


Читать дальше →

Права доступа Web-сервера

В программировании и администрировании необходимо всегда отталкиваться от правила: запрещено все, что не разрешено. Когда вы настраиваете компь­ютер, сервер или пишете программу, необходимо сначала запретить абсо­лютно все и только потом выдавать определенные права. Это должно касаться всего, с чем вы работаете. Этот раздел посвящен правам доступа во всех его проявлениях в отношении Web-сервера.
Права сценариев Web-сервера
Сценарии должны выполняться в системе с минимальными правами. Напри­мер, ваш сценарий должен иметь право обращаться к системному каталогу /etc. В этом каталоге хранятся конфигурационные файлы ОС Linux, и если пользователь сможет скомпрометировать сценарий, то велика вероятность, что он сможет получить права администратора.
Читать дальше →

Nagios - установка

Предварительная подготовка

Установите из портов перечисленные приложения:

  • MySQL 4x server : /usr/ports/databases/mysql40-server
  • MySQL 4x client : /usr/ports/databases/mysql40-client
  • Apache 1.3x : /usr/ports/www/apache13
  • Net-SNMP : /usr/ports/net-mgmt/net-snmp
  • Nagios : /usr/ports/net-mgmt/nagios (WITH_MYSQL=«YES»)

[править] Настройка SNMP
В системе, за которой вы собираетесь наблюдать с помощью Nagios,
должен быть установлен и сконфигурирован SNMP.
Настройка SNMP выполняется достаточно просто.
Обязательно поменяйте названия сообществ (community),
приведённые в конфигурационном файле.
Названия сообществ это фактически пароли,
и оставляя их неизменными вы делаете удар по безопасности системы.
Есть два способа настроить SNMP в Unix:

Читать дальше →

Как сделать рип сайта? как рипнуть сайт? или DLE:Как сделать рип сайта , рипнуть сайт (Полное руководство)

Как сделать рип сайта? как рипнуть сайт? учимся делать рип сайта?
Поехали:
Если вы не знаете html, вам будет очень трудно, разобраться :)
1. Заходим через ИЕ на сайт который хотите рипать потом нажимаем Страница => Сохранить как…
2. Выбираем Веб-страница полностью и сохраняем.
3. Создаем шаблон, Заходим в админку => Другие разделы => Шаблоны сайта => создать новый и выбираем название за своим усмотрением.
4. Заходим в папку templates и в папку вашего шаблона ( который вы создали через админ панель ) там должна быть папка images
5. Удаляем все содержимое папки кроме .htaccess
6. Идем туда куда сохраняли страницу там есть папка с каритнками так вот заходим в эту папку и все содержимое копируем
в папку images
7. Заходим в браузер Opera потом заходим на сайт который рипаем…
Читать дальше →

directadmin + nginx и о том как их подружить

Как известно, apache хорошая штука, но его тяжеловестность, сильно ограничивает возможности.
Для решения проблемы используется связка frontend + backend. В качестве backend сервера выступает apache, а в качестве frontend сервера, любой другой легковестный. В статье мы рассмотрим связку, в которой nginx выступает в роли вронт-энд сервера.
В интернете полно статей, о том, как настроить nginx, но я не столкнулся ни с одной, как заставить работать nginx вместе с панелью управления directadmin.
Читать дальше →