X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )

3 страниц Открыть меню  < 1 2 3  
Ответить в данную темуНачать новую тему
> Toogle CMS, ваше мнение?
Skyff
сообщение 2010-08-16, 0:59
Сообщение #41
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 928
Регистрация: 2009-02-08
Из: Литва

Репутация:   нет  
Всего: 4


sanes, причем тут категории и отключение добавления новостей, я не могу понять.
А новости практически у всех ЦМС похожи, мало что есть индивидуального.
Перейти в начало страницы
+Цитировать сообщение
sanes
сообщение 2010-08-16, 1:02
Сообщение #42
Аноним
Иконка группы

Группа: Пользователи
Сообщений: 1 180
Регистрация: 2008-12-29
Из: Волгоград

Репутация:   нет  
Всего: 4


при том, что не обязана новость иметь категорию :)
Перейти в начало страницы
+Цитировать сообщение
Skyff
сообщение 2010-08-16, 1:06
Сообщение #43
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 928
Регистрация: 2009-02-08
Из: Литва

Репутация:   нет  
Всего: 4


sanes, Для меня обязательно, ЦМС создается не для узкого круга пользователей а для обширного и это функционал востребован большинством, вот было бы воплей на форуме если бы не было возможности создавать категорий. А кому надо могут новости постить без категорий, отсутствие возможности создавать категории, негативно бы сказалось на системе.
Перейти в начало страницы
+Цитировать сообщение
sanes
сообщение 2010-08-16, 1:10
Сообщение #44
Аноним
Иконка группы

Группа: Пользователи
Сообщений: 1 180
Регистрация: 2008-12-29
Из: Волгоград

Репутация:   нет  
Всего: 4


Skyff, мы с тобой на разных языках чтоль разговариваем? Не обязана - значит, я могу добавить новость не указав категорию и не создавать эти категории вообще. Кому нужны категории, ради бога, я не предлагаю их отменить :)
Перейти в начало страницы
+Цитировать сообщение
Skyff
сообщение 2010-08-16, 1:13
Сообщение #45
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 928
Регистрация: 2009-02-08
Из: Литва

Репутация:   нет  
Всего: 4


sanes, В таком случая можно сказать что сайт не обязан быть на ЦМС :D
Перейти в начало страницы
+Цитировать сообщение
sanes
сообщение 2010-08-16, 1:20
Сообщение #46
Аноним
Иконка группы

Группа: Пользователи
Сообщений: 1 180
Регистрация: 2008-12-29
Из: Волгоград

Репутация:   нет  
Всего: 4


Skyff, во ёпть.. ну ты загнул. Это чё за ущемление прав? Протестую! Новость не обязана иметь категорию! Не обижайте маленьких. А то блин, все такие мегапорталы на х.. послать некого :new_russian:

Добавлено через 3 минут, 50 секунд:

http://uktehnostroy.ru куда мне тут категории пихнуть? новости вообще тут бывают иногда, с июня ни одной, даже первой :D у них вообще новости редко бывают.
Перейти в начало страницы
+Цитировать сообщение
Skyff
сообщение 2010-08-16, 1:26
Сообщение #47
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 928
Регистрация: 2009-02-08
Из: Литва

Репутация:   нет  
Всего: 4


sanes, А к чему ты говоришь что не обязаны ? Конечно не обязаны... Тут все от фантазии, а если говорить о функционале, то возможность создавать категорию новостям, если есть здравый ум, то быть обязана... :D
Перейти в начало страницы
+Цитировать сообщение
sanes
сообщение 2010-08-16, 1:34
Сообщение #48
Аноним
Иконка группы

Группа: Пользователи
Сообщений: 1 180
Регистрация: 2008-12-29
Из: Волгоград

Репутация:   нет  
Всего: 4


ну вот попробуй запости новость или файл без категории в Элеанор. Сразу, ты не создал категорию, не гоже мегапортальную систему под свой ГС использовать ;)
Перейти в начало страницы
+Цитировать сообщение
Skyff
сообщение 2010-08-16, 1:40
Сообщение #49
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 928
Регистрация: 2009-02-08
Из: Литва

Репутация:   нет  
Всего: 4


sanes, Каждому свое, но это можно сделать и в одной категории к примеру основной. Все логично, в принципе это настолько не актуально, что некто практически не задумывался об этом. Это только принципиально можно реализовать. а ГС вообще лучше не делать, это очень плохо :D и некрасиво...
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2010-08-16, 3:20
Сообщение #50
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Цитата (sanes @ 2024-04-18 04:30)
Новости например не обязаны иметь категорию. ИМХО

Согласен. Актуально для небольших сайтов. Но вот галочки "отключить категории" - мне кажется недостаточно. Ведь на небольшом сайте нафик не нужны ни теги, ни поиск, ни другое. Эти возможно тоже сделать что-ли отключаемыми? :huh: Слишком много опций будет в таком случае... &lt;_&lt; Не нравится мне эта идея.

Добавлено через 2 минут, 47 секунд:

Только давайте идеи для системы будем писать в теме о первой версии.
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2010-08-16, 3:35
Сообщение #51
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


И еще. Я тут решил посмотреть внутренности Toogle CMS. Разочарован.

На 90% уровень разработчика можно понять, проанализировав как он фильтрует переменные.
Смотрим. Метод входа (вроде как, не утверждаю):

	function login($nick, $password)
	{
	global $db, $config;
		$db->query("DELETE FROM " . DB_PREFIX . "_online WHERE ip = '" . getRealIpAddr() . "'");
		setcookie(COOKIE_PAUSE, false, time(), '/');
		
		$password = md5($password);
		
		$access = $db->getRow($db->query("SELECT id, password, tail FROM " . DB_PREFIX . "_users WHERE nick = '" . $nick . "' AND active='1'"));

		if (md5(substr($password, 0, -strlen($access['tail'])) . $access['tail']) == $access['password']) 
		{
			delcache('userInfo_'.$this->user_id);
			$newHash = md5(@$_SERVER['HTTP_USER_AGENT']);
			setcookie(COOKIE_AUTH, base64_encode(serialize(array('id' => $access['id'], 'nick' => $nick, 'password' => md5(substr($password, 0, -strlen($access['tail'])) . $access['tail']), 'hash' => $newHash)).$config['uniqKey']), time() + COOKIE_TIME, '/');
			return true;
		} 
		else 
		{
			setcookie(COOKIE_AUTH, '', time(), '/');
			return false;
		}


Ай-яй-яй. Переменная $nick никак не фильтруется... Это очень плохо. Но... Посмотрим место вызова функции.

			if ($core->auth->login(filter($_POST['nick']), filter($_POST['password'])) == true) 
			{
				$core->tpl->redicret('Вы успешно вошли сейчас вас переместит обратно!', $_SERVER['HTTP_REFERER']);
			} 
			else 
			{
				$core->tpl->redicret('Вход не выполнен! Проверьте имя пользователя, пароль и попробуйте снова!', $_SERVER['HTTP_REFERER'], 'Ошибка!');
			}


Опа! Фильтруются все-таки переменные. Но вот "== true" писать, это уже начинает очень смущать относительно опытности программера, ведь заранее известно, что login возвращает исключительно булевы значения!

И как же фильтруются?
function filter($text, $type = false) 
{
    global $core, $security;
    if($type != 'template')
    {
        $text = preg_replace('/{%([^%]*)%}/i', '', $text);
    }

    $allowArr = explode(',', $security['allowHTML']);
    $allowHTML = '<'.implode('>,<', $allowArr).'>';
    $stopWords = explode(',', $security['stopWords']);
    foreach($stopWords as $word)
    {
        $wordReplace[$word] = $security['stopReplace'];
    }

    $text = str_replace('||men||', '<', $text);
    $text = str_replace('||and||', '&', $text);
    $text = str_replace('||bol||', '>', $text);
    $text = str_replace(array_keys($wordReplace), array_values($wordReplace), $text);

    switch($type)
    {
        default:
            //$text = urldecode($text);
            $text = strip_tags($text, $allowHTML);
            $text = trim($text);
            $text = htmlspecialchars($text, ENT_QUOTES);
            //$text = preg_replace('/{%([^%]*)%}/i', '', $text);
            break;

А вот это уже могу охарактеризовать только словом "пиздец". Потому что фильтруется и содержимое пароля! А может я хочу, чтобы у меня пароль был <script> ? Судя по коду, получается, что пароль для системы у меня будет пустым и кто угодно сможет войти. Нехорошо :(

Добавлено через 2 минут, 36 секунд:

В остальном и целом, код, скажем так, не блещет. Может модулей и побольше, чем у Eleanor CMS, но зная james-а давненько могу сказать, что со стороны его система выглядит как деградация программера.
Перейти в начало страницы
+Цитировать сообщение
Гость_james_*
сообщение 2010-08-16, 22:03
Сообщение #52



Гости





Почитал, впитал, спасибо за поправки, признаю написал криво. Да может мой код не блещет супер качеством, но я пытаюсь программировать, я пишу и совершенствую. Я очень долго мучался и думал как организовать фильтрацию данных, но я пишу кмс один, посоветоваться мне нескем. Поэтому написал на бум, да стыдно, а кто мне поможет? Суть не в этом. Я молод, мне есть к чем стремиться. Выше, быстрее, сильнее, вроде так.
Перейти в начало страницы
+Цитировать сообщение
sanes
сообщение 2010-08-16, 23:44
Сообщение #53
Аноним
Иконка группы

Группа: Пользователи
Сообщений: 1 180
Регистрация: 2008-12-29
Из: Волгоград

Репутация:   нет  
Всего: 4


james, или ты промахнулся или нитуда. поясни. ИМХО
Перейти в начало страницы
+Цитировать сообщение
Гость_james_*
сообщение 2010-08-17, 0:29
Сообщение #54



Гости





Цитата (Alexander @ 2024-04-18 04:30)
Опа! Фильтруются все-таки переменные. Но вот "== true" писать, это уже начинает очень смущать относительно опытности программера, ведь заранее известно, что login возвращает исключительно булевы значения!


а вот это не понял, честно скажу... может реально программер я дрянь.
	function login($nick, $password)
	{
	global $db, $config;
		$db->query("DELETE FROM " . DB_PREFIX . "_online WHERE ip = '" . getRealIpAddr() . "'");
		setcookie(COOKIE_PAUSE, false, time(), '/');
		
		$nick = filter($nick, 'a');
		$password = md5($password);
		
		$access = $db->getRow($db->query("SELECT id, password, tail FROM " . DB_PREFIX . "_users WHERE nick = '" . $nick . "' AND active='1'"));
	
		if (md5(substr($password, 0, -strlen($access['tail'])) . $access['tail']) == $access['password']) 
		{
			delcache('userInfo_'.$this->user_id);
			$newHash = md5(@$_SERVER['HTTP_USER_AGENT']);
			setcookie(COOKIE_AUTH, base64_encode(serialize(array('id' => $access['id'], 'nick' => $nick, 'password' => md5(substr($password, 0, -strlen($access['tail'])) . $access['tail']), 'hash' => $newHash)).$config['uniqKey']), time() + COOKIE_TIME, '/');
			return true;
		} 
		else 
		{
			setcookie(COOKIE_AUTH, '', time(), '/');
			return false;
		}
	}


согласно этому коду логин либо возращает true либо false.
Можешь объяснить суть замечания?

Добавлено через 0 минут, 42 секунд:

sanes, я создатель, так вышло что и разработчик Toogle CMS
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2010-08-17, 2:38
Сообщение #55
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


james, критику написал, считаю, обоснованную. Сразу скажу, что не хочу тебя обидеть/задеть. Просто так получается, что код действительно желает лучшего, намного лучшего.

Цитата (james @ 2024-04-18 04:30)
Я очень долго мучался и думал как организовать фильтрацию данных, но я пишу кмс один, посоветоваться мне нескем. Поэтому написал на бум, да стыдно, а кто мне поможет? Суть не в этом. Я молод, мне есть к чем стремиться. Выше, быстрее, сильнее, вроде так.

Взаимно. У меня ситуация точно такая же. Твоя главная ошибка в том, что ты делаешь фильтрацию бездумно всего абсолютно, а это в корне неправильно. Подобные глупости я встречал не только у тебя. Вот например зачем фильтровать пароль пользователя? Пользователь в этом поле волен писать, что хочет - хоть ХТМЛ, код XSS, хоть SQL. Это его дело, нам нельзя ни в коем случае как-то исправлять его фантазию. Тоже самое, касается ников пользователя - нам просто нужно правильно вывести последовательность символов, составляющую имя пользователя; и, если он хочет иметь ник <html> - это его полное право.

Цитата (james @ 2024-04-18 04:30)
Можешь объяснить суть замечания?

Могу конечно. Булевы переменные не требуют сверки значения с булевыми константами ни в одном языке программирования. Т.е. если мы написали
$var=true;

То проверку надо осуществлять так:
if($var)
{
#Код
}


Ты же осуществляешь проверку вот так:
if($var==true)
{
#Код
}

Что является нестолько ошибкой, сколько создает впечателние новичка в программировании.
Перейти в начало страницы
+Цитировать сообщение
Гость_james_*
сообщение 2010-08-17, 9:13
Сообщение #56



Гости





Спасибо за советы, сейчас примусь за переработку, как фильтрации, так и всего кода в целом
Перейти в начало страницы
+Цитировать сообщение
sanes
сообщение 2010-08-17, 12:21
Сообщение #57
Аноним
Иконка группы

Группа: Пользователи
Сообщений: 1 180
Регистрация: 2008-12-29
Из: Волгоград

Репутация:   нет  
Всего: 4


james, удачи! Радует, что авторы в хороших отношениях.
<offtop>Совместными усилиями потопим ЛАЕД :) </offtop>

Сообщение отредактировал sanes - 2010-08-17, 12:21
Перейти в начало страницы
+Цитировать сообщение
Flynt
сообщение 2010-08-19, 15:10
Сообщение #58
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 313
Регистрация: 2010-06-30

Репутация:   нет  
Всего: нет


Система хороша, и перспективна.
james, успехов вам!
Перейти в начало страницы
+Цитировать сообщение

3 страниц Открыть меню  < 1 2 3
Ответить в данную темуНачать новую тему
0 чел. читают эту тему (гостей: 0, скрытых пользователей: 0)
Пользователей: 0

 
RSS Текстовая версия 0.0407 сек.    12 запросов    GZIP включен    Сейчас: 2024-04-18, 4:30