Внимание! Форум временно закрыт. Все вопросы вы можете задать на странице MaxSite CMS в Github

latest MaxSite CMS 0.363 (25 ноября 2009)

Только для тех, кто понимает.
Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

latest MaxSite CMS 0.363 (25 ноября 2009)

Сообщение MAX » 25 ноя 2009, 20:33

В нем все последние изменения, которые мы обсуждали на форуме.

В качестве эксперимента сделал новый тип «require-maxsite» для того, чтобы можно было подключать php-файл с инициализацией системы по прямой ссылке. Потребовалось для того, чтобы сделать динамические css-стили в php-файле.

Показываю как работает.

style-require-maxsite.php

Код: Выбрать все

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

header('Content-type: text/css');

$a_color = 'green';

echo "
a {color: $a_color;}
";

?>


header.php:

Код: Выбрать все

<link rel="stylesheet" href="<?= getinfo('require-maxsite') . base64_encode('templates/' . getinfo('template') . '/style-require-maxsite.php') ?>" type="text/css" media="screen">


То есть мы передаем путь к файлу (относительно /maxsite/) в base64. Сам файл должен быть именован как «имя-require-maxsite.php».

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

Также я планирую переделать тип ajax, чтобы имя подключаемого файла также строго соотвествовало шаблону «имя-ajax».

mixar
Модератор
Сообщений: 333
Зарегистрирован: 14 окт 2009, 11:09

Re: latest MaxSite CMS 0.363 (25 ноября 2009)

Сообщение mixar » 25 ноя 2009, 22:09

admin писал(а):Также я планирую переделать тип ajax, чтобы имя подключаемого файла также строго соотвествовало шаблону «имя-ajax».


А чем просто ajax не устраивает? Там же тоже base64 encoding кодирование. А если кто-то решил заюзать ajax, кто ему помешает заюзать имя-ajax? Ajax же еще и в админке используется...

PS: А этот баг поправил?
viewforum.php?f=11
[url=http://www.codeigniter.ru]CodeIgniter по-русски[/url] | [url=http://freebsd.pro]FreeBSD Community[/url]

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: latest MaxSite CMS 0.363 (25 ноября 2009)

Сообщение MAX » 26 ноя 2009, 00:16

Кодирование base64 используется только для того, чтобы получить через сегмент URL нужный адрес/путь. Кодировать/раскодировать элементарно. Если разрешить require() любого файла сразу после инициализации системы, то проверка на BASEPATH будет пройдена, а следовательно на любой файл системы можно отправить тот же POST. А это серьезная проблема.

Поэтому и сделал шаблон, согласно которому и будут подключаться файлы. Получается, что для тех, кому нужно использовать эту возможность должны семь раз проверить код файла. Чтобы он ни POST, ни другие опасные входные данные не принимал. Вплоть до die().

С Аяксом же немного по-другому. Там формируется специальный заголовок, но мне кажется, что его можно подделать. Поэтому подключаемые файлы также следует как-то ограничить.

mixar
Модератор
Сообщений: 333
Зарегистрирован: 14 окт 2009, 11:09

Re: latest MaxSite CMS 0.363 (25 ноября 2009)

Сообщение mixar » 26 ноя 2009, 17:11

По воводу безопасности Ajax вот статья: http://www.xakep.ru/post/46875/default.asp
там в конце еще есть полезные ссылки на инглише правда...
[url=http://www.codeigniter.ru]CodeIgniter по-русски[/url] | [url=http://freebsd.pro]FreeBSD Community[/url]

Аватар пользователя
Wave
Сообщений: 1218
Зарегистрирован: 01 фев 2009, 17:38

Re: latest MaxSite CMS 0.363 (25 ноября 2009)

Сообщение Wave » 30 ноя 2009, 17:20

После обновления с 0.361 на 0.363 перестали отображаться записи на главной, в категориях, в admin/page/category/n
Вылечилось возвертанием взад common/page.php

Из разницы, насколько вижу,
$current_paged = mso_current_paged($r['pagination_next_url']);
и
$CI->db->where('page_date_publish <', 'NOW');

Локально всё работало. Проблема появилась при переносе на сервер.
С пагинацией не извращался (плагины включал и их дефолтные настройки сохранял), стандартный сайт со своим шаблоном, записи явно старее того, что можно списать на разницу часовых поясов.

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: latest MaxSite CMS 0.363 (25 ноября 2009)

Сообщение MAX » 30 ноя 2009, 17:47

Проверь дату на сервере и в MySQL. Иногда она почему-то бывает разной.

Аватар пользователя
Wave
Сообщений: 1218
Зарегистрирован: 01 фев 2009, 17:38

Re: latest MaxSite CMS 0.363 (25 ноября 2009)

Сообщение Wave » 30 ноя 2009, 18:40

Может, и так, но там записи явно старее, чем можно было бы списать на разницу в часовых поясах. Сентябрьские и ранее. К тому же это не объясняет отсутствие страниц по admin/page/category/n

Смерджил исходники — действительно, дело только в замене на 'NOW'

И поэтому же перестали работать некоторые плагины (список по логу: last_pages, page_comments, page_views, perelinks, random_pages, rater).

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: latest MaxSite CMS 0.363 (25 ноября 2009)

Сообщение MAX » 30 ноя 2009, 19:00

Значит дело в дате MySQL. Ты всё-таки проверь.

Код: Выбрать все

SELECT NOW( );

Аватар пользователя
Wave
Сообщений: 1218
Зарегистрирован: 01 фев 2009, 17:38

Re: latest MaxSite CMS 0.363 (25 ноября 2009)

Сообщение Wave » 30 ноя 2009, 19:11

NOW( )
2009-11-30 19:10:18

Даты страниц от 2006, кажется, до сентября-октября нынешнего.

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: latest MaxSite CMS 0.363 (25 ноября 2009)

Сообщение MAX » 30 ноя 2009, 19:22

Сложно сказать. Я такую ошибку воспроизвести не могу. Попробуй в параметрах mso_get_pages() указать:

Код: Выбрать все

'date_now' => false


Это отключит проверку даты создания страниц. Если появятся, значит дело именно в дате на сервере.


Вернуться в «if (!is_type('Programmer')) die('not for you');»

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей

cron