За месяц Июнь, 2010

DrWeb Spider Gate - не удалось найти действительный ключевой файл

На компьютере стояла лицензионная пятая версия “Доктор Веб”. Предложение “бесплатно обновить”  на шестую доктор выдавал при каждом обновлении баз. Естественно, в какой-то момент щелкать на “спасибо не надо обновлять” надоело - было принято решение обновиться до шестой версии. Правда, после скачивания она ещё некоторое время полежала на компьютере.. до очередного предупреждения об обновлении..

После обновления с версии 5 на версию 6 DrWeb при загрузке стал выдавать предупреждение:

Ошибка SpiDer Gate
Не удалось найти действительный ключевой файл. Приложение будет закрыто.

При получении такого сообщения следует первым делом проверить лицензионный файл. Это можно сделать при помощи менеджера лицензий DrWeb (или заглянуть в файл .key в каталоге DrWeb и посмотреть в строке Applications=). Если лицензия не распространяется на SpiderGate и Mail - оба компонента можно смело удалять… После удаления сообщение о закрытии приложения появляться не будет. Еще можно раскошелиться на лицензию для DrWeb Security Space Pro с поддержкой этих компонентов. Все-таки web-антивирус не помешает.

UPD похожая ситуация, однако с лицензиями всё в порядке…

Причиной ошибки послужило “кэширование” в Windows Vista

удалите папку \Users\[ваше имя пользователя]\AppData\Local\VirtualStore\Program Files\DrWeb и перезагрузитесь.
http://forum.drweb.com/index.php?showtopic=278183

Пользуйтесь лицензионными антивирусами и не забывайте обновляться (настройте автоматическое обновление антивирусных баз)

Опубликовано Июнь 29, 2010 | автор: levik  |  Нет комментариев »

Хранение паролей сайта или восстанавливаем пароль, имея доступ к базе

В целях безопасности многие сайты не хранят в открытом виде пароли пользователей. Функция восстановления пароля в таких случаях не “восстанавливает” старый пароль, а генерирует новый. При авторизации в этом случае присланный пароль шифруется (обычно хеш-функцией), а результат сравнивается с тем, что хранится в базе. Если совпадают - все в порядке. Если нет - ошибка авторизации.

Однако, довольно часто, требуется войти в панель управления или администрирования (админку), доступ к которой потерян (или вообще неизвестен). Восстановление тоже может не работать. Как быть?

Если имеется доступ к базе - можно попробовать задать новый пароль “ручками”, непосредственно в таблице пользователей. У каждой системы управления может быть свой метод хранения хешированных паролей, однако, наиболее распространенных способов не так много.

  • Хранение пароля в открытом виде

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

  • Хранение результата хеш-функции (хеш-суммы) пароля.

При задании (или генерации) пароля производится вычисление хеш-функции от строки пароля, и это значение записывается в таблицу. Наиболее распространенные функции для хранения паролей к сайтам - md5() , sha1(). Распознать хеш-функцию можно по характеным признакам:

md5-хеш содержит 128 бит (16 байт) и обычно представляется как последовательность из 32 шестнадцатеричных цифр. Например, MD5(”md5″) = 1bc29b36f623ba82aaf6724fd3b16718

sha1-хеш содержит 160 бит (20 байт) и представляется в виде последовательности 40 шестнадцатеричных цифр (5 групп по 8 символов). sha1(”sha”)   = d8f45903 20e1343a 915b6394 170650a8 f35d6926

  • Хранение хеш-суммы пароля и соль (salt)

Этот вариант имеет ещё более высокую степень защиты. В базе хранится хеш сумма и соль в виде hash:salt. (символ двоеточия приведен для примера, однако, именно его использование распространено)

salt - (соль) обычно строка из нескольких символов.  Используется для генерации хеш суммы. функция вычисляется не от значения пароля, а от значения “пароль”+”соль” ( “соль”+”пароль”, md5(md5(”пароль”)+”соль”)).

Хранение паролей в некоторых CMS

MD5 c4ca4238a0b923820dcc509a6f75849b Используется в phpBB v2.x, Joomla версии ниже 1.0.13, а также во многих других форумах и CMS.Длина: 16 байт. shugarcrm (поле user_hash)
md5($pass.$salt) 6f04f0d75f6870858bae14ac0b6d9f73:1234 Используется в WB News, Joomla версии 1.0.13 и выше.Длина: 16 байт.
md5($salt.$pass) f190ce9ac8445d249747cab7be43f7d5:12 Используется в osCommerce, AEF, Gallery и других CMS.Длина: 16 байт.
md5(md5($pass)) 28c8edde3d61a0411511d3b1866f0636 Используется в e107, DLE, Koobi .Длина: 16 байт.
md5(md5($pass).$salt) 6011527690eddca23580955c216b1fd2:wQ6 Используется в vBulletin, IceBB.Длина: 16 байт.
md5(md5($salt).md5($pass)) 81f87275dd805aa018df8befe09fe9f8:wH6_S Используется в IPB.Длина: 16 байт.
md5(md5($salt).$pass) 816a14db44578f516cbaef25bd8d8296:1234 Используется в MyBB.Длина: 16 байт.
SHA-1 356a192b7913b04c54574d18c28d46e6395428ab Используется во многих форумах и CMS.Длина: 20 байт.Алгоритм: соответствует функции sha1() языка PHP.
sha1(strtolower($username).$pass) Admin:6c7ca345f63f835cb353ff15bd6c5e052ec08e7a Используется в SMF.Длина: 20 байт.
base64_encode($pass) * Используется в Shop Script .

Cбрасываем пароль для JOOMLA
update `jos_users` set password = CONCAT(MD5(CONCAT('123','123')),':123') where id=1
пароль, как несложно догадаться - 123

Сброс пароля для Bitrix
http://www.vladsun.com/cms/bitrix_password_change.php
* с версии 7.1 checkword = (md5(salt+pass))

http://www.insidepro.com/hashes.php?lang=eng

Опубликовано Июнь 25, 2010 | автор: levik  |  Комментарии (5) »

Как очистить кэш в MODx? Кэширование в modx

В системе modx предусмотрено кэширование документов. Если не вдаваться в подробности, то это значит, что данные, необходимые для формирования страницы сохраняются из базы данных в отдельный файл, к которому в дальнейшем происходит повторное обращение. Читать целиком »

Опубликовано Июнь 23, 2010 | автор: levik  |  Комментарии (4) »

Временный пользователь в Windows (Users/Temp) или где мой рабочий стол

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

В чем дело?! Читать целиком »

Опубликовано Июнь 22, 2010 | автор: levik  |  Комментарии (7) »

font size= и font-size: (html vs css)

При переносе верстки с использованием тегов <font size=”2″></font> в свойство CSS font-size, выяснилось, что различные браузеры,  воспринимают CSS-свойства xx-small, x-small, small, large…

Набор констант (xx-small, x-small, small, medium, large, x-large, xx-large) задает размер, который называется абсолютным.  По правде говоря, они не совсем абсолютны, поскольку зависят от настроек браузера
и операционной системы.

CSS xx-small x-small small medium large x-large xx-large
HTML 1 2 3 4 5 6 7

Действительно, в различных браузерах результаты применения одинакового стиля сильно отличаются: проверить себя можно тут http://rotorweb.ru/typography/css-font-size-conversion-chart.html

Условное обозначение Размер шрифта
в Firefox 3.6, Chrome, Safari 4, px
Размер шрифта
в Opera 10, IE6,7,8, px
xx-small 9 10
small 12 16
large 18 24
xx-large 32 48

Опубликовано Июнь 21, 2010 | автор: levik  |  Комментарий (1) »

modx - ditto, reflect, tags (tagging) - делаем тэги на MODx

Несмотря на довольно солидное сообщество, не только русскоязычное, на некоторые простые вопросы ответы найти удается с трудом. Без претензий, но факт. (Скорее, претензии к себе.. плохо ищу, или не могу правильно сформулировать вопрос.. хотя, ряд аналогичных вопросов на форуме оставлен без ответа).

Для начала, до разработки сайтов на MODx рекомендуется ознакомиться с некоторыми терминами, специфичными для этой системы..  Сниппеты, Чанки, TV, Шаблоны… организация документов. В качестве примера можно изучить DEMO-сайт, почитать WikiУчебник .

В статье описан работающий пример организации записей (постов) по датам и тэгам (по аналогии с блогом на wordpress) с удобным редактированием. Все подводные камни расписывать не буду.. Скажу лишь, что в DEMO-блоге этот механизм работает не совсем так, как описано, а привести его без особых ухищрений к привычному виду не удалось…

Итак, делаем тэги + даты на MODx

  1. Внимательно изучаем статью http://modx.ru/blog/add_tags/ и комментарии к ней. Делаем все, что там описано. Добавляем TV с именем tags, сниппеты Ditto, tagLinks и TvTagCloud нам пригодятся.
  2. Если планируются многословные тэги, а также есть желание упростить их ввод в “админке” (ткнул на тэг - он добавлен) читаем про пробелы и виджет тэгов MODx . После - добавляем mm_widget_tags(’tags’,’ ‘) , и исправляем, если требуется, &delimeter = ‘,’ (в вызове Ditto)
  3. Сниппет Reflect - своеобразная надстройка над Ditto. В месте вывода архива по датам (июнь 2010, май 2010…)
    [!Reflect? &config=`wordpress` &targetID=`3` &path=`3` &dittoSnippetParameters=`parents:3` &id=`wp` &getDocuments=`1`!]

Основная часть закончена. По идее, всё должно отображаться как нужно. Теперь бубен и напильник :)

При совместном использовании Ditto, Reflect и тэгов к ссылкам добавляются “лишние” параметры . К ссылкам дат добавляется &tags, а к ссылкам тэгов добавляются даты (wp_year…)

  1. Чистим ссылки в выводе Reflect. Сделано добавлением нового сниппета Leftmenu с кодом:
    <? php // snippet 'Leftmenu';
    $tmp=$modx->runSnippet('Reflect', array(
    'targetID' => 3,
    'config'=>'wordpress' ,
    'path'=>'3' ,
    'tplContainer'=>'reflect_tpl',
    'dittoSnippetParameters'=>'parents:3',
    'id'=>'wp',
    'getDocuments'=>'1'
    ));
    // echo $tmp; // для проверки корректности выполнения сниппета$tmp = preg_replace ('/(&)?(wp_)?tags=[^&"]*(&)?(start=0&)?/is','',$tmp);
    // регулярник для очистки от параметров wp_tags=xxx (от текущего ditto) tags=xxx (облако тэгов) и start=0
    echo $tmp;
    //[!Reflect? &config=`wordpress` &targetID=`3` &path=`3` &tplContainer=`reflect_tpl` &dittoSnippetParameters=`parents:3` &wp_tags=`` &id=`wp_` &getDocuments=`1`!]
    ?>
  2. 2. Чистим ссылки на страницы тэгов в выводе DITTO:
    В шаблоне вместо плейсхолдера [+tagLinks+] используем вызов сниппета - вывод тэгов со ссылками только на тэги
    [!tagLinks? &tv=`tags` &label=`
    Метки: ` &id=`[+id+]` &path=`3`!]

Если с первого раза не получится - отчаиваться не стОит. Опыт.. опыт.. и ещё раз опыт.

А вообще-то можно использовать стандартную конфигурацию из DEMO-сайта.

ps По умолчанию, Reflect считает, что в Ditto используется дата создания документа. Иногда удобнее использовать дату публикации документа. Кроме указания соответствующего параметра в Ditto, эту информацию следует  передать и в Reflect, примерно так: &dittoSnippetParameters=`parents:11|sortBy:pub_date`

Опубликовано Июнь 20, 2010 | автор: levik  |  Комментарии (4) »

modx - подборка сниппетов

О MODx можно почитать http://cad.kurganobl.ru/modx_book_01.html/

В системе управления cms/cmf MODx один из способов реализации дополнительного функционала  - так называемые Сниппеты (snippet). По сути Snippet в MODx это блок php-кода, который вызывается специальной конструкцией непосредственно из страницы. В сниппете доступны все переменные php (например, $_GET или $_POST..), кроме того могут быть переданы параметры, определяющие логику работы сниппета (чем-то похоже на вызов процедуры с параметром) Читать целиком »

Опубликовано Июнь 19, 2010 | автор: levik  |  Комментарии (3) »

Photoshop - сообщение об ошибке «…not enough memory (RAM)»

При попытке выполнить некоторые операции Photoshop выдает ошибку«Could notnot enough memory (RAM)»

Возможно, пришло время очередного апгрейда - фотошопу действительно не хватает памяти. Либо, память эта забита чем-то другим.. Попробуем её освободить… Возможно, удастся обойтись без апгрейда..

Читать целиком »

Опубликовано Июнь 18, 2010 | автор: levik  |  Комментарии (5) »

php-шпаргалка

Шпаргалка php.

Пополняется

Вывод на php полного URL (протокол + адрес + путь + GET-строка)

<?=$_SERVER['SERVER_PROTOCOL']
.$_SERVER['SERVER_NAME']
. $_SERVER['REQUEST_URI ]
.$_SERVER[’QUERY_STRING] ?>

Порядок аргументов

int substr ( string $string , int $start [, int $length ] )
int strpos ( string $haystack , string $needle [, int $offset ] )

array explode ( string $separator , string $string [, int $limit ] )
string implode ( string $glue , array $pieces )

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int $&count ] )

pathinfo() -> array_keys ( dirname, basename, extension);

Шпаргалка сбивается для собственных нужд, однако пополнения приветствуются…

Опубликовано Июнь 17, 2010 | автор: levik  |  Нет комментариев »

Эта страница имеет потенциальный изъян в системе безопасности. Продолжить?

Эта страница имеет потенциальный изъян в системе безопасности. Продолжить?

При попытке скопировать документ (оба компьютера - windows XP) из сетевой папки на другом компьютере каждый раз появлялось сообщение:

Эта страница имеет потенциальный изъян в системе безопасности. Продолжить?

Аналогичные ситуации возникали при попытке копировать с компьютера под управлением LINUX (+samba) на рабочую станцию windows, при копировании по сети  с Vista на winXP…

Попытки отключить стандартный брандмауэр Windows (и в свойствах сетевого подключения “защищено брандмауэром”, и вообще остановка службы) ни к чему не привели - сообщение все так же появлялось.

Установка уровня безопасности на “Низкий” для местной интрасети (Local Intranet) также результат не дала. (Сервис -> Cвойства обозревателя -> Безопасность -> Местная интрасеть (Local Intranet), выбираем “Низкий”). Добавление в надежные узлы - аналогично.

Убираем сообщение об изъяне в системе безопасности при помощи редактирования групповых политик - gpedit.msc
Конфигурация пользователя -> Административные шаблоны -> Компоненты Windows -> Internet Explorer -> Панель управления браузером -> Вкладка безопасности
Шаблон зоны интрасети (Включить, Низкий)
Список назначений зоны безопасности для веб-сайтов (либо %domain_name%, либо %IP_второй_машины%, значение = 1)

http://social.technet.microsoft.com/forums/ru-RU/windowsserverru/thread/efcfb154-06cc-4c5e-ae29-4acea8153c51/

UPD Также сообщение о потенциальном изъяне в системе безопасности пропадает после установки Internet Explorer 8 (ie 7 не проверялся)

Опубликовано Июнь 16, 2010 | автор: levik  |  Комментарии (4) »