Инсталлятор блоголёта и безопасность
15.05.2009Выложил версию блоголёта в которой исправлен инсталлятор - из за накопившихся изменений не успевал все синхронизировать. Сейчас устанавливается все нормально. Для установки добавлен файл install.php который проверяет версию php и наличие модуля апача rewrite. Отредактировал файл readmeru.txt - в нем написал побольше о безопасности. Например всем рекомендовал бы удалить три строчки в корневом файле index.php и вместо них написать одну, например для blogolet.ru это будет
$domain = 'blogolet.ru';
так как возможны атаки на сервер с неправильными заголовками, что может навредить серверу. Идея проста - по умолчанию блоголёт определяет домен к которому обращаются, но лучше самому прописать имя домена, чтобы у движка не было выбора. Опасность состоит в создании нового блога на вашем сервере.
← Ранее Ссылка далее в RSS и комментирование
Позже Блогклиент для блоголёта →
Комментарии (12) на запись “Инсталлятор блоголёта и безопасность”
Оставить комментарий
попробовала новую версию на хостинге, где не работали ЧПУ (PHP 5.2.6), результат вызова install.php:
Warning: Unexpected character in input: ''' (ASCII=39) state=1 install.php on line 13
Fatal error: Call to undefined function apache_get_modules() in install.php on line 8
сегодня решил обновиться - ручками залил обновленную версию поверх существующей. и результат:
Caught exception: The requested property url not found in class TPost
trace error
0 lib/dataclass.php(26): TDataClass->Error('The requested p...')
1 lib/itemclass.php(29): TDataClass->__get('url')
2 lib/templateclass.php(381) : eval()'d code(3): TItem->__get('url')
3 lib/templateclass.php(381): eval()
4 lib/templatepostclass.php(59): TTemplate->ParseFile('postexcerpt.tml')
5 lib/homepageclass.php(23): TTemplatePost->PrintPosts(Array)
6 lib/templateclass.php(482): THomepage->GetTemplateContent()
7 lib/templateclass.php(56): TTemplate->Getcontent()
8 lib/templateclass.php(381) : eval()'d code(34): TTemplate->__get('content')
9 lib/templateclass.php(381): eval()
10 lib/templateclass.php(345): TTemplate->ParseFile('index.tml')
11 lib/urlmapclass.php(148): TTemplate->Request(Object(THomepage))
12 lib/urlmapclass.php(136): TUrlmap->PrintClassContent('THomepage', Array)
13 lib/urlmapclass.php(61): TUrlmap->PrintContent(Array)
14 lib/urlmapclass.php(38): TUrlmap->DoRequest('/')
15 index.php(39): TUrlmap->Request('www.anuderself....', '/')
16 {main}
При входе в админку - Fatal error: Class 'TAuthDigest' not found in /home/a2601718/public_html/lib/adminpage.php on line 60
сие возможно лечить?
Ошибка более чем странная - отсутствует урл у поста, что не может быть. С обновлением вообще существует логическая проблема, если делать через форму в админке: если залил обновление, и не был запущен скрипт обновления, то могут быть ошибки впо причине не соответствия данным и обновленному коду. Рекомендую следующее: - добавить в конце index.php в корне перед $Urlmap две следующие строки:
$updater = &TUpdater::Instance();
$updater->Update();
после чего открыть любую страницу стайта. Скрипты обновления сработают, после чего удалить эти строки из файла. Наддеюсь, что это поможет. Автоматическое обновление перед заливкой новых файлов полностью сохраняет текущуюткопию сайта в zip в папке backup - в случае неудачного обновления данные всегда можно оттуда восстановить. В случае же ручного обновления ответственность за бекапы ложится на владельца.
Я как то планировал сделать инсталятор со встроенным ftp клиентом - тогда бы были вовсе не нужны расширенные права на папки и файлы. Например в мултиадминке делается ftp клиент для установки блоголёта на очередной хостинг. Но пока что сделано так, как сделано. К тому же есть проблемы с безопасностью у ftp - многие вообще рекомендуют им не пользоваться, а только sftp
А в дальнейшем сделаете версию для хостингов, на которых установлен php как cgi, чтобы блоголёт сам проверял, что и как на хостинге и в зависимости от ответа, инсталлировался так, чтобы у конечного пользователя не было лишних вопросов?
То есть Вы-то написали, что «лечится следующим образом: не использовать install.php а lib/installclass.php отредактировать таким образом, чтобы убрать проверку апачевского модуля».
Может, в следующей версии исправите, чтобы новички не искали лекарство?
Жаль, что нет универсального решения. Тогда, может, закрепить на главной странице или в readme самые распространённые проблемы и варианты их решения?
Вот, например, в статье «Переход с базовой на хешированную авторизацию» Вы в комментариях пишете:
В корневом файле index.php перед $Urlmap вставить две строки
$updater = &TUpdater::Instance();
$updater->Update();
после чего открыть любую страницу, также обновить файл .htaccess в корне - это для php как cgi
Тогда бы человек, у которого сходу не получилось установить блоголёт, нашёл бы свою ошибку и решил её самостоятельно. Хотя всего, конечно, не предусмотреть.
ничего не помогло. обнаружил странную вещь - у последнего поста чпу отчего-то такой "-1". постил livewriterom.
вопрос такой - как на свежеустановленный блог перенести данные и настройки с блога старого?
Перенос - это простое копирование файлов из папки data, а еслине совпадают версии библиотеки, то просто все папки скопировать, ну кроме файлов из cache/domain - впрочем и их тоже можно, просто особого смысла копировать кеш нет.
Адрес получился битым могу предположит по нескольким причинам: не был указан заголовок поста и урл поста не был таким образом сформирован. Обрати внимание на первый пост - наверняка у него пустой урл или заголовок. Блоголёт генерирует новые урлы по шаблону, если такой урл уже есть, то создается такой же урл с гс цифрами в конце. До сих пор не подправил - логично первой цифру ставить2, а не 1 как сейчас
Ошибка в файле install.php
«require(index.php');php» — не хватает одиночной кавычки после скобки перед index.php
Исправить 13 строку на
require('index.php');php