Подскажите где движок DLE хранит логи работы своих скриптов или как можно их включить.
таких логов не существует. Есть логи ошибок, они храняться где и все логи сервера, т.к. это серверные логи.
Когда в админке добавляются новости не большого размера в пару строк, то все проходит нормально, но когда новость содержит много текста и много строк, то скрипт не хочет добавлять новость и выбрасывает на начальную страницу добавления новости.
Если вам нужна помощь, то вам нужно прочитать и выполнять правила форума, а именно:
Если ваша тема начинается с вопроса и вам нужна какая либо помощь, то в самой теме в обязательном порядке вы должны указывать ссылку на ваш сайт. Если ваш сайт находится в локальной сети и вы не можете предоставить ссылку, или вы не хотите публиковать открытой ссылки на ваш сайт, то отправляйте персональное сообщение с вопросом в службу поддержки непосредственно с сайта http://dle-news.ru/, вам ответят на ваш вопрос в персональном порядке, в случае если пользуетесь платной версией скрипта и обладаете лицензией на скрипт. Если вы пользуетесь демоверсией, то вам необходимо разместить сайт в сети интернет, и только потом обращаться за помощью. По находящимся на локальных компьютерах демоверсиям никакой помощи и поддержки на форуме не оказывается. Если вы не указали сайт, то ваша тема будет закрыта, а аккаунт на форуме заблокирован.
У нашей, всеми любимой, системы, есть один недостаток. Этот недостаток может и не проявлять себя, если ошибок с базой данных происходит мало, ну или ошибки редки.
В данной статья я научу вас, как сделать лог-файл для ошибок базы данных в системе управления сайтом Data Life Engine. Кроме того, информация об ошибке будет отправляться на ваш электронный адрес.
А вместо того, что бы отображать информацию об ошибке БД в системе, сделаем заглушку из статической страницы. Слепок который вы должны сделать самостоятельно (сохранить главную страницу на жесткий диск в виде html файла).
Если учесть, что программа будет еще и отсылать письма, тогда это вообще будет чудом для программиста. К примеру, на моем телефоне настроен электронный ящик, и о любых сообщениях почты я узнаю сразу (орет как бешеный). Это важно, т.к. сайты есть разные, в них по разному инвестируют деньги, и за любые ошибки программисту могут оторвать любые конечности. Сообщения бесплатные, в отличие от смсок.
1. Зайдите на главную страницу своего проекта. Введите в адресной строке адрес несуществующей страницы, сохраните страницу.
2. В сохраненной странице исправьте информацию о ненайденной статической странице на информацию об ошибке связанной с базой данных. Приведите информацию об электронном ящике администратора, а так же разработчика. Смысл в том, что бы информацию об ошибке БД вообще не отображать, вообще никакую. Нужная информация будет сохраняться в лог-файл и отсылаться на электронный адрес. Впрочем можно просто сохранить главную страницу и ничего не менять.
Файл-заглушка будет так же полезен и сеошникам.
3. Назовите страницу “db.html”, и поместите её в папку “templates”. Адрес сохраненной страницы будет “templates/db.html”.
4. Создайте папку “engine/logs”, с правами 755. В папку поместите файл .htaccess, такого содержания:
Order Deny,Allow
Deny from all
Это прекроет доступ к лог-файлу.
5. Создайте файл “engine/logs/db.txt”, с правами 666.
6. Откройте файл engine/classes/mysqli.class.php для редактирования.
Найдите в нем следующие строки:
function display_error($error, $error_num, $query = »)
{
if($query) {
// Safify query
$query = preg_replace(«/([0-9a-f]){32}/», «********************************», $query); // Hides all hashes
$query_str = «$query»;
}
echo ‘
MySQL Fatal Error
MySQL Error!
————————
The Error returned was:
‘.$error.’
Error Number:
‘.$error_num.’
‘.$query_str.’
‘;
exit();
}
и замените эти строки на эти строки:
function display_error($error, $error_num, $query = »)
{
if( ( $f = @fopen(«engine/logs/db.txt»,»a») ) ){
if( @fwrite( $f, date( ‘Y-m-d H:i:s’ ).»;\t#: {$error_num};\tdescription: {$error};\tquery: {$query} endquery;\n» ) ){
@fclose($f);
}
}
$header=»From: \»CMS DLE\» «;
$header.=»Content-type: text/plain; charset=\»windows-1251\»»;
@mail(«[email protected]», «DB error on SiteInfo with «.DBNAME.», time «.date( ‘Y-m-d H:i:s’ ), «Error number: {$error_num}\nDescription: {$error}\nQuery: {$query}\n\n\n——————«.»\nDB user: «.DBUSER.»\nDB pass:».DBPASS.»\nDB name: «.DBNAME.»\nDB host:».DBHOST.»\n\n\nDate and time: «.date( ‘Y-m-d H:i:s’ ).»\n——————\n\n\nSERVER print_r: «. print_r($_SERVER, true), $header);
$file_ = «templates/db.html»;
if(file_exists( $file_ )){
@readfile( $file_ );
}else{
echo «DB error. E-mail administrator [email protected]. Please wait 10 minutes and try again.»;
}
exit();
}
7. Сохраните файл и откройте подобный файл engine\classes\mysql.class.php для редактирования. Замените те же самые строки, что указано выше.
* Данные файлы дублируют программный код, они сделаны для разных версий MySQL.
8. Замените адреса электронной почты в новом вставляемом коде.
Найти во вставляем коде и заменить в соответсвии:
[email protected] – почта, якобы от которой отправлено письмо, 1 раз заменить на почту вашего сайта,
[email protected] – ваша почта, заменить два раза на свою почту.
Теперь поясню код.
if( ( $f = @fopen(«engine/logs/db.txt»,»a») ) ){
if( @fwrite( $f, date( ‘Y-m-d H:i:s’ ).»;\t#: {$error_num};\tdescription: {$error};\tquery: {$query} endquery;\n» ) ){
@fclose($f);
}
}
— это запись информации в лог-файл (номер ошибки, описание, запрос).
$header=»From: \»CMS DLE\» «;
$header.=»Content-type: text/plain; charset=\»windows-1251\»»;
@mail(«[email protected]», «DB error on SiteInfo with «.DBNAME.», time «.date( ‘Y-m-d H:i:s’ ), «Error number: {$error_num}\nDescription: {$error}\nQuery: {$query}\n\n\n——————«.»\nDB user: «.DBUSER.»\nDB pass:».DBPASS.»\nDB name: «.DBNAME.»\nDB host:».DBHOST.»\n\n\nDate and time: «.date( ‘Y-m-d H:i:s’ ).»\n——————\n\n\nSERVER print_r: «. print_r($_SERVER, true), $header);
— отправка письма, в кодировке с поддержкой кириллицы (в теме вставляется название базы данных и время с датой, в самом сообщении номер ошибки, описание, запрос, данные для соединения с базой данных, время и дата, а так же подробная информация о запросе страницы).
$file_ = «templates/db.html»;
if(file_exists( $file_ )){
@readfile( $file_ );
}else{
echo «DB error. E-mail administrator [email protected]. Please wait 10 minutes and try again.»;
}
— выводиться файл заглушка, который вы подготовили чуть ранее. Если файл не будет найден, выведется краткая информация о том, что произошла ошибка с БД.
Каждый из отдельных блоков можно удалять, например если вам вовсе не нужны сообщения на емайл, удалите код, который отправляет письма. Если вам не нужен лог-файл вовсе – удалите код который производит запись в лог файл. Можно удалить и то и это, тогда просто выведется страница заглушка и не будет отображена информация об ошибке БД.
Внимание! В сообщении на почту отправляются данные для соединения с БД, если вам такая роскошь не нужна (а это еще и к тому же опасно, если ваш ящик взломают) то удалите ниже приведенный код из вставляемого кода в классы БД (вы делали это выше).
«.»\nDB user: «.DBUSER.»\nDB pass:».DBPASS.»\nDB name: «.DBNAME.»\nDB host:».DBHOST.»
Пожалуй это всё. Сообразительные могут продолжить идею, к примеру, вставлять шаблон главной страницы (заменив теги системы) вместо файла заглушки.
Автор: RedRat (admin-club.ru)
Версия DLE: 9.x
Внимание! У Вас нет прав для просмотра скрытого текста.
Необходимый хак дле некоторым сайтам, у которых иногда происходит ошибка с загрузкой страницы. Хак Создаем лог файл ошибок PHP в DLE, тем самым будет установлена заслонка для ошибок в PHP, что сделает вашу систему DataLife Engine еще более неуязвимой и безопасней.
«Автор:»RedRat
Источник: admin-club ru
Хак Создаем лог файл ошибок PHP в DLE ekexibnm безопасность
P.S. Так же читаем как сделать лог-файл ошибок БД для DLE Ниже в разделе похожие новости
Советует скачать dle хаки Создаем лог файл ошибок PHP
log_error.zip [16,01 Kb] (cкачиваний: 79)
У нашей, всеми любимой, системы, есть один недостаток. Этот недостаток может и не проявлять себя, если ошибок с базой данных происходит мало, ну или ошибки редки.
В данной статья я научу вас, как сделать лог-файл для ошибок базы данных в системе управления сайтом DataLife Engine. Кроме того, информация об ошибке будет отправляться на ваш электронный адрес.
А вместо того, что бы отображать информацию об ошибке БД в системе, сделаем заглушку из статической страницы. Слепок который вы должны сделать самостоятельно (сохранить главную страницу на жесткий диск в виде html файла).
Источник:dle.in.ua — Всё для DLE
В этой статье мы рассмотрим, что такое DLE (DataLife Engine), как работают логи на сайте, что делать, если происходит нападение со стороны непонятного посетителя сайта.
DLE (DataLife Engine) – это CMS (Система Управления Контентом), которая создана для управления сайтом или блогом. Сайт, созданный на основе DLE, обычно имеет богатый функционал и множество возможностей как для посетителей, так и для администратора.
Логи на сайте
Логи на сайте – это записи, которые содержат информацию о том, что происходило на сайте в определенный момент времени. Эта информация может быть использована для анализа трафика, определения ошибок и решения проблем.
Логи бывают различных типов:
1. Access-log – это файл, который хранит информацию обо всех запросах к сайту. В этом файле можно увидеть IP-адреса посетителей, дату и время запроса, тип запроса и код ответа сервера.
2. Error-log – это файл, который содержит информацию об ошибках на сайте, таких как ошибки PHP, ошибки базы данных и т.д.
3. Transfer-log – это файл, который хранит информацию о переданных данных между сервером и клиентом. Этот файл помогает администратору понять, какие файлы были переданы клиентам, какие запросы были выполнены и т.д.
Однако, не все логи нужно хранить вечно. Они могут занимать большой объем дискового пространства и замедлять работу сайта. Поэтому необходимо периодически очищать логи и сохранять только те данные, которые действительно нужны.
Непонятный посетитель
Непонятный посетитель – это посетитель сайта, который проявляет необычное поведение, например, пытается получить доступ к защищенным страницам, запросы которых никто не отправляет.
Что делать в случае нападения?
1. Проверьте логи. Если вы заметили необычную активность в логах, попробуйте определить IP-адрес посетителя и отследить его действия.
2. Обновите пароли. Если подозреваете, что ваш сайт был взломан, необходимо обновить пароли на всех административных страницах и базах данных.
3. Отключите доступ с определенных IP-адресов. Если вы определили, что запросы приходят от конкретного IP-адреса, вы можете заблокировать его.
4. Обновите CMS и плагины. Возможно, что взломщик использовал уязвимости в CMS или плагинах. Поэтому важно всегда использовать последние версии CMS и всех установленных плагинов.
5. Свяжитесь с хостинг-провайдером. Если вы не можете справиться с нападением самостоятельно, свяжитесь с хостинг-провайдером. Он может помочь вам защитить сайт и выявить необычную активность.
Вывод
Сайт на DLE может быть подвержен нападению со стороны непонятного посетителя, но с помощью правильной настройки логов и быстрой реакции на аномальную активность вы можете предотвратить серьезные проблемы. Регулярно проверяйте логи, обновляйте CMS и плагины, используйте сложные пароли и не допускайте на свой сайт непонятных посетителей.