Страниц (5): « 1 2 [3] 4 5 »
Найдено сообщений: 67 |
cooper |
Отправлено: 10 октября 2015 — 19:43 • Тема: Хакерская атака на форум. • Форум: Решение проблем |
Ответов: 11 Просмотров: 0
|
Ну что же, восстановил через бекап работоспособность, однако уязвимость осталась. Пришлось временно закрыть регистрацию. |
cooper |
Отправлено: 10 октября 2015 — 15:45 • Тема: Хакерская атака на форум. • Форум: Решение проблем |
Ответов: 11 Просмотров: 0
|
Хакер вписывет алерты и редиректы в названия тем.
Форум не загружается и срабатывет редирект на другой сайт.
Если зайти с отключеным яваскриптом, то форум загружается но тему удалить не получается - кнопка GO на яваскрипте.
Особенность в том, что форум уже полгода работает на хосте с UTF-8, с ошибками но работает.
Пришлось внести изменения, описано здесь:
http://exbb.info/community/topic...opic=600&p=2
Кто подскажет как лечить форум?
Может есть возможность перевести кнопку GO на РНР? |
cooper |
Отправлено: 19 февраля 2015 — 17:48 • Тема: Не могу войти на форум. • Форум: Решение проблем |
Ответов: 19 Просмотров: 0
|
Что если прямо в этом скрипте прописать проверку на кодировку и перекодировку?
CODE:function Clean_Key($key) {
$key = trim($key);
if ($key == '') {
return '';
}
$key = preg_replace( "/\.\./" , '' , $key );
$key = preg_replace( "/\_\_(.+?)\_\_/" , '' , $key );
$key = preg_replace( "/^([\w\.\-\_]+)$/", "$1", $key );
return $key;
}
function Clean_Value($var) {
$var = (get_magic_quotes_gpc()) ? trim(stripslashes($var)):trim($var);
$var = preg_replace("#\r#","",$var);
return preg_replace("#&(\#[0-9]+;)#", "&$1", htmlspecialchars($var,ENT_QUOTES));
}
Что-то типа этого:
CODE:$name = stripslashes($this->charset=="windows-1251" && mb_detect_encoding($name,"UTF-8",true)!==false ? iconv("UTF-8", "windows-1251", $name) : $name); |
cooper |
Отправлено: 17 февраля 2015 — 16:19 • Тема: Не могу войти на форум. • Форум: Решение проблем |
Ответов: 19 Просмотров: 0
|
1Bot пишет:cooper , попробуйте советы из темы Необходимо ввести текст сообщения!
Там уже вводили перекодировку через iconv в include/vars.class.php
CODE:function _String($key,$var = '') {
$this->input[$key] = (isset($this->input[$key]) && $this->input[$key] != '') ? $this->input[$key]:$var;
return $this->input[$key];
}
на
CODE:function _String($key,$var = '') {
$this->input[$key] = (isset($this->input[$key]) && $this->input[$key] != '') ? $this->input[$key]:$var;
return iconv('UTF-8', 'Windows-1251', $this->input[$key]);
}
Но разблокировала работу форума отмена проверки:
CODE:function Clean_Key($key) {
$key = trim($key);
if ($key == '') {
return '';
}
$key = preg_replace( "/\.\./" , '' , $key );
$key = preg_replace( "/\_\_(.+?)\_\_/" , '' , $key );
$key = preg_replace( "/^([\w\.\-\_]+)$/", "$1", $key );
return $key;
}
function Clean_Value($var) {
$var = (get_magic_quotes_gpc()) ? trim(stripslashes($var)):trim($var);
$var = preg_replace("#\r#","",$var);
return preg_replace("#&(\#[0-9]+;)#", "&$1", htmlspecialchars($var,ENT_QUOTES));
}
на
CODE:function Clean_Key($key) {
if ($key == '') {
return '';
}
return $key;
}
function Clean_Value($var) {
return $var;
}
Сообщения добавляются, кириличиские ники входят на форум, но появились ошибки сверху.
Считаю более правильным решение с перекодировкой, а с отменой проверки - только временным.
Интересно, что это в одном и том же файле.
Наверно там нужно согласовать приоритетность.
1.Что проверять перед перекодировкой.
2.Что перекодировать.
3.Что проверять после перекодировки.
Скорее всего, это этим же файлом и ограничится, поскольку в нем все разблокировалось.
Если эту проблему решить, то форум спокойно можно ставить и на сервера с UTF-8. |
cooper |
Отправлено: 17 февраля 2015 — 10:12 • Тема: Не могу войти на форум. • Форум: Решение проблем |
Ответов: 19 Просмотров: 0
|
Вообще, поскольку результат переговоров с хостерами, реально не предсказуем, - универсальным средством для любого хостинга, могло бы стать перекодирование средствами РНР.
Ввести условие для ввода текста, при UTF-8 перекодировать через:
CODE:echo iconv("utf-8", "windows-1251", "Перекодировать на cp-1251.");
Кто знает, в скольких файлах нужно было бы это сделать?
И возможно ли? |
cooper |
Отправлено: 17 февраля 2015 — 08:02 • Тема: Не могу войти на форум. • Форум: Решение проблем |
Ответов: 19 Просмотров: 0
|
Ситуация такая, - тут постоянно говорилось, что форум работает только на серверах с windows-1251.
Ппрописать в .htaccess эту строку:
CODE:AddDefaultCharset windows-1251
- ничего не решает.
Эта строка регламентирует сервер передавать браузеру инфу в этой кодировке, и то, если не будет другой команды. На то, что передает браузер на сервер, это не распространяется.
Есть еще две директивы:
CODE:CharsetSourceEnc windows-1251
- Загрузка файлов только в windows-1251
- Запрет перекодировать файлы.
Обе эти директивы вызывают у меня на хостинге - ошибку 500.
.htaccess ограничено в своей работе директивами заданными в httpd.conf |
cooper |
Отправлено: 16 февраля 2015 — 21:32 • Тема: Не могу войти на форум. • Форум: Решение проблем |
Ответов: 19 Просмотров: 0
|
NordWest, - в common прописал, не помогло.
Из всех подчеркнутых файлов, у меня есть только:
fm.class.рнр
JsHttpRequest.рнр
Но в них нет функции: htmlspecialchars
Ну или устал уже.
-
"Танцы с бубнами".....................
Запустил Денвер-3 РНР5
Залил туда весь форум из бэкапа - все работает как часы.
Проблема в кодировке!
Пока лазил по JsHttpRequest.рнр - обнаружил там интересные строки:
CODE:
* Convert a PHP scalar, array or hash to JS scalar/array/hash. This function is
* an analog of json_encode(), but it can work with a non-UTF8 input and does not
* analyze the passed data. Output format must be fully JSON compatible.
CODE:if (function_exists('array_walk_recursive') && function_exists('json_encode') && $this->_unicodeConvMethod) {
$encoding = "UTF-8";
$this->_nonAsciiChars = join("", array_map('chr', range(128, 255)));
$this->_toUtfFailed = false;
array_walk_recursive($result, array(&$this, '_toUtf8_callback'), $this->SCRIPT_ENCODING);
if (!$this->_toUtfFailed)
Вообще-то я рнр знал только немножко, да и то вчера. Но судя по всему там запрет на работу с utf-8. |
cooper |
Отправлено: 16 февраля 2015 — 13:00 • Тема: Не могу войти на форум. • Форум: Решение проблем |
Ответов: 19 Просмотров: 0
|
Цитата:Затем нужно решить проблему с функцией htmlspecialchars в которой нужно обязательно прописать кодировку cp1251 или будут проблемы с кириллицей.
Можно конечно жестко прописать, но вдруг когда поменять придется...
Короче открываем common.php ищем строку
CODE:define('FM_PATH', dirname(dirname(__FILE__)) . '/');
после которой добавляем
CODE:define("FM_ENCODING", "cp1251");
И в папке install в файлах index.php и update.php аналогично в начало добавляем
CODE:define("FM_ENCODING", "cp1251");
После этого делаем поиск по всем файлам форума строки htmlspecialchars и если у функции задано не все три параметра приводим функцию к полному виду, например
CODE:htmlspecialchars($v,ENT_QUOTES,FM_ENCODING)
(на месте первого параметра должно остаться то, что там было)
И не включаем модули "Хранение статистики чтения тем на сервере" и "Поиск тем и сообщений пользователя" т.к. они используют базу на SQLite2 а её поддержка с этой версии PHP была прекращена.
У меня файл common имеет вид:
CODE:<?php
if (!defined('IN_EXBB')) die('Hack attempt!');
error_reporting (E_ALL);
#error_reporting (E_ERROR | E_PARSE);
if (!defined("PATH_SEPARATOR")) { define("PATH_SEPARATOR", getenv("COMSPEC")? ";" : ":"); }
ini_set("include_path", ini_get("include_path").PATH_SEPARATOR.dirname(__FILE__));
if (get_magic_quotes_runtime() === 1) set_magic_quotes_runtime(0);
define("FM_LOGDIR", "data/access_log/");
define("FM_ALLFORUMS", "data/allforums.php");
define("FM_ALLFORUMS_BAK", "data/allforums_bak.php");
define("FM_BADWORDS", "data/badwords.php");
define("FM_BANLIST", "data/banlist.php");
define("FM_BANNEDIP", "data/bannedip.php");
define("FM_BANNERS", "data/banners.php");
define("FM_BOARDINFO", "data/boardinfo.php");
define("FM_BOARDINFO_BAK", "data/boardinfo_bak.php");
define("FM_BOARDSTATS", "data/boardstats.php");
define("FM_COUNTERS", "data/counters.php");
define("FM_TITLES", "data/membertitles.php");
define("FM_NEWS", "data/news.php");
define("FM_ONLINE", "data/onlinedata.php");
define("FM_SKIP_MAILS", "data/skip_mails.php");
define("FM_SMILES", "data/smiles.php");
define("FM_USERS", "data/users.php");
define("FM_TEMPUSERS", "data/users_temp.php");
define("FM_SEARCH_EXC", "data/search_exc.php");
define("FM_VERSION", "1.0 RC1");
require_once('lib.php');
require_once('page_header.php');
$fm->_Advertising();
$fm->_Authorization();
// Если сервер в заголовках принудительно ставит левую кодировку, пошлём его подальше и поставим свою ;)
header('Content-Type: text/html; charset='.$fm->LANG['ENCODING']);
$fm->exbb['version'] = FM_VERSION;
// На домене установки форум будет доступен только по тому URL, который указан в админке
// Это предотвращает проблемы с работой сессий и куки на производных поддоменах типа 'www' и т п.
preg_match("#(www\.|)([[:alnum:]\.\-]+)/([[:alnum:]\/\.\-]+)#is", $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'], $req_url);
preg_match("#(www\.|)([[:alnum:]\.\-]+)/([[:alnum:]\/\-]+)#is", $fm->exbb['boardurl'], $set_url);
if (@$req_url[2] == @$set_url[2] && $req_url[1] != $set_url[1])
header('Location: http://'.$set_url[2].'/'.$req_url[3].(($_SERVER['QUERY_STRING'] ? '?'.$_SERVER['QUERY_STRING'] : '')));
unset($req_url, $set_url);
if ($fm->exbb['installed'] === FALSE) {
header("Location: ./install/index.php");
} elseif (file_exists("./install/index.php")) {
$fm->_Message($fm->LANG['MainMsg'],$fm->LANG['DelleteInstallDir']);
}
if ($fm->exbb['board_closed'] && !(defined('IS_LOGIN') || defined('IS_ADMIN'))) {
$fm->_Message($fm->LANG['BoardClosed'],nl2br(strtr($fm->exbb['closed_mes'], array_flip(get_html_translation_table(HTML_SPECIALCHARS)))));
}
?>
|
cooper |
Отправлено: 15 февраля 2015 — 20:56 • Тема: Не могу войти на форум. • Форум: Решение проблем |
Ответов: 19 Просмотров: 0
|
electron пишет:
сам сервер должен работать в кодировке win-1251 . если в админке хостинга нельзя выбрать кодировку сервера - заставьте его принудительно обрабатывать работу форума в нужной ВАМ кодировке. для этого в корневой .htaccess форума надо добавить строку
CODE:AddDefaultCharset windows-1251
Сервер хостера работает в UTF-8, поэтому практически сразу:
В настройках домена прописал windows-1251
Строчку с кодировкой в .htaccess форума прописал.
При сбое кодировки хотя бы кракозябалы должны были бы писаться, а тут - ничего.
Пишет везде - "не заполнили поле"
Или в админке, просто не сохраняет записи на кириллице. |
cooper |
Отправлено: 15 февраля 2015 — 18:57 • Тема: Не могу войти на форум. • Форум: Решение проблем |
Ответов: 19 Просмотров: 0
|
После запары со сменой прав доступа, форум немного ожил, и некоторые пользователи могут уже заходить. Вот только ни одно поле ввода, не видит кириллицы, латиницу кушают а кириллицу не видят.
(язык по умолчанию руссиан, и кириллические ники разрешены)
Нельзя войти пользователям с кириллическими никами, нельзя написать пост кириллицей, а латиницей - пожалуйста.
Если кто знает где об этом написано, бросьте ссылку - пожалуйста..... |
cooper |
Отправлено: 15 февраля 2015 — 17:05 • Тема: Не могу войти на форум. • Форум: Решение проблем |
Ответов: 19 Просмотров: 0
|
electron пишет:папке data присваиваете права на запись, всем файлам в этой папке - права на запись, т.к. они являются как бы памятью форума и должны периодически обновляться. далее папке access_log - права на запись, всем файлам в папке access_log - права на запись... и тд и тп по списку...
Еще небольшой вопрос - в указанных папках есть файлы:
index.html
.htaccess
Thumbs.db
.gif
.jpg
Как быть с ними - у них права доступа также менять на 777(755)? |
cooper |
Отправлено: 15 февраля 2015 — 08:51 • Тема: Не могу войти на форум. • Форум: Решение проблем |
Ответов: 19 Просмотров: 0
|
electron пишет:перенос форума должен выполняться в бинарном режиме. если это условие не выполнялось на форуме будут постоянные косяки.
С этим просто - FTP Voyager tools\transfer mode\binary
electron пишет:после переезда нужно высставить права на запись для файлов и папок из ExBB FAQ , вопрос/ответ 3
Там к примеру сказано:"для папки data и всех файлов в ней"
В папке data есть вложенная папка access_log, нужно ли изменять в ней?
Тут таки да, если долго пользуешься форумом как потребитель, то после этого любые сбои в работе вызывают трудности.
С другой стороны, это говорит в пользу форума, - пару лет работал как часы. |
cooper |
Отправлено: 14 февраля 2015 — 22:20 • Тема: Не могу войти на форум. • Форум: Решение проблем |
Ответов: 19 Просмотров: 0
|
Слава Богу, вспомнил про папку install и залез на форум, зарегистрировав нового админа. Есть файл из members 1.php - как по нему восстановить старого админа, а главное статистику профиля? |
cooper |
Отправлено: 14 февраля 2015 — 16:05 • Тема: Не могу войти на форум. • Форум: Решение проблем |
Ответов: 19 Просмотров: 0
|
После переезда, не могу зайти на форум, пишет:
Цитата:Вы ввели неверное/неактивное имя пользователя или неверный пароль!
А если запросить "забыли пароль?", то он не видит логина в поле, и пишет:
Цитата:Не заполнено поле Имя пользователя! |
|
Страниц (5): « 1 2 [3] 4 5 »
|