Ильич Рамирес Санчес: Блог
Главные вкладки
Drupal 6.22 и 7.2
Дырке нашли.
Цытато:
-------- DESCRIPTION
---------------------------------------------------------
Multiple vulnerabilities and weaknesses were discovered in Drupal.
.... Reflected cross site scripting vulnerability in error handler
A reflected cross site scripting vulnerability was discovered in Drupal's
error handler. Drupal displays PHP errors in the messages area, and a
specially crafted URL can cause malicious scripts to be injected into the
message. The issue can be mitigated by disabling on-screen error display at
admin/settings/error-reporting. This is the recommended setting for
production sites.
This issue affects Drupal 6.x only.
.... Cross site scripting vulnerability in Color module
When using re-colorable themes, color inputs are not sanitized. Malicious
color values can be used to insert arbitrary CSS and script code. Successful
exploitation requires the "Administer themes" permission.
This issue affects Drupal 6.x and 7.x.
Бодрячком, пацанчики. Бодрячком. Обновляемся.
сервис для проверки качества приложений qa.drupal.org кто-то пользовал?
Народ, кто-то эту фигню пользовал в своих модулях?
я думаю со временем весь свой код под TDD перелопатить.
как оно? с чем едят? какие косяки возможны?
Кто пишет модули под тесты? Я так понимаю 7ка задает моду на тестирование каждого вызова.
С чего начать чтобы много не бегать вокруг да около?
господа, считающие что TDD не нужно, просьба тут не писать. меня волнует процесс этого дела применительно к разработке, а не это ваше особое мнение
Masterhost и Imagecache[РЕШЕНО]
Господа, у нас тут внезапно перестал работать imagecache на шареде
Вместо картинок отдается 404 мастерхоста и управление не доходит до друпала.
Кто на .м, дружно проверяем любой адрес с несуществующей картинкой типа /1111.jpg
Если ответил не drupal а показало 404 с эмблемой мастерхоста - это оно. походу 404 их нгинх выдает или че там фронтендом
UPDATE:
решилось тикетом следующего содержания.
для инвалидов тех кто не технарь - пригодится.
Добрый день.У нас уже стоит в .htaccess строка ErrorDocument 404 /index.php
и раньше все корректно работало. Все 404 ошибки успешно перенаправлялись на CMS Drupal.
Сейчас происходит тоже самое но не для всех страниц.
например урлы оканчивающиеся на .js, .jpg, .png, .txt, .flv (и на прочие типы материала) дают стандартную 404 страницу мастерхост.
таким образом, мы предполагаем, что до апача с modrewrite запрос попросту не доходит и это делается на фронтенде(nginx, или что вы там применяете).Как пример http://*******.ru/1.jpg, http://**********.ru/1.txt дают 404 мастерхоста, однако http://**************.ru/jdsfjhfkj дает 404 страницу друпала как положено.
Убедительная просьба, настройте фронтенд правильно, поскольку это мешает обработке изображений на сайте.
Вообще, мастерхост в частности мне не нравится этими внезапными сменами конфигураций, когда все перестает работать.
Winrar и tar.gz
Господа, просветите меня почему винрар может давать ошибку при работе с gяipped tar?
народ жалувуеца цто на винде не может архив распаковать.
Демосайт. Демонстрация работы модуля advimage + проба хостера.
По следам топиков о добровольцах для тестирования хостинга и моего топика про релиз галереи.
Запущен демосайт, где можно зарегистрировавшись, посмотреть как работает advimage, advupload в рамках сборки brainstormblogger.
Загрузить картинки. Поиграться с галереями.
Наладка самой сборки заняла полчаса. Наладка хостинга порядка 20 минут с учетом того что я настроил apache немного по своему.(завтра вышлю пару интересных мыслей в письме).
В общем, прошу мучать пациента всех желающих http://advimage.brainstorm.name/
UPDATE от 11.04.11. походу товарищи из eurobyte.ru внезапно забыли что дали хостинг сроком на полгода под проект, а не на месяц.
И требуют денег за размещение.
Посему ищется хостинг под демосайт, или дней через 10 он будет выключен. У себя эту штуковину мне держать нет интереса.
Галерея.
Представляю новый модуль для галерей изображений - advimage.
Данный модуль предназначен для удобной работы с галереми изображений.
- Использует CCK поля в своей работе, что упростит расширяемость при использовании
- Имеет форму редактирования галереи, где можно изменить сортировку изображений, добавить или убрать из галереи те изображения, что не нужны
- Дополнительные страницы списка галерей, списков изображений пользователя, общие списки на сайте
- Cовместим с open groups
Рекомендуется к использованию совместно с модулем advupload для удобной загрузки большого количества изображений.
Загрузить модуль можно на странице проекта на drupal.org http://drupal.org/project/advimage
Полее полное описание что там внутри - можно посмотреть здесь: http://brainstorm.name/node/350.html
Любая помощь по проекту приветствуется. Перевод на D7 будет в ближайшее время. Стабильный релиз будет в ближайшие пару дней.
PS: не надо рассказывать про тонны модулей галерей - тот функционал который реализован у меня - в них отсутсвует.
PPS: это не очередная попытка сделать говногалерею на множественном imagefield. Это попытка реализовать то что устраивало бы меня лично.
Brainstormblogger 1.1 release
Выпущен релиз сборки brainstormblogger, версия 1.1.
Изменения:
- Порядок комментариев теперь как надо
- В случае доступности ckeditor(а в сборке он доступен) он включается визуальным редактором по умолчанию
- Подправлены фильтры форматов ввода
- Функции установки в сборке разделены по разным функциям
- captcha - по умолчанию теперь нормально работает. Включенна текстовая капча
Брать здесь.
Дальнейшие планы
- сделать модуль обновлений
- систему пресетов для поддерживаемых модулей(для установки+настройки модуля одним щелчком мышки)
- поднять сайт проекта: brainstormblogger.org для англоязычных и brainstormblogger.ru для русскоязых пользователей,
- стимулировать пользователей и разработчиков на переводы модулей, которые будет задействовать сборка.
Если есть желание оказывать содействие проекту - добро пожаловать.
Инсталляционный профиль для Drupal и сборка brainstormblogger
Начну издалека.
Есть Drupal, есть Wordpress, есть другие системы.
Но почему то Drupal не так популярен в среде блоггеров. А все достаточно просто.
Сделать базовые настройки для непосвященного на сайте - большая проблема. Соотвественно новичку проще поставить что-либо еще, тот же Wordpress в котором и редактор визуальный есть, и категории не надо мучаться крутить, в общем все есть для ведения блога из коробки.
Было решено создать инсталляционный профиль,который позволить создать настроенный сайт для блоггера парой кликов мышки, с выбором темы оформления, и т.д., с настроенным WYSIWYG, настроенными пермалинками и тд. То есть, распаковал архив, подготовил settings.php, запустил и получил результат.
Итак. Представляю вам сборку brainstormblogger в которой все это есть.
Задействованы: filefield, imageapi, imageapi_gd, imagecache, imagecache_ui, imagefield, lightbox2, no_anon, pathauto, persistent_login, tagadelic, token, uploadpath, wysiwyg, admin_menu
Вам нужно просто пару раз щелкнуть мышкой, чтобыполучить настроенные редакторы, форматы ввода, и типы материалов, а также русский перевод, настолькополный насколько он полон на drupaler.ru(спасибо PVasil)
Основная страница проекта на русском: http://brainstorm.name/russian/brainstormblogger.html
Проект на drupal.org для желающих "поиграть в конструктор": http://drupal.org/project/brainstormblogger
Отдельное спасибо Егору(gor) за идею и предоставленный для тестов хостинг.
mysql, drupal и persistent connections
Пул соединений с БД может немного облегчить нагрузку на сервер для посещаемых ресурсов.
Drupal в includes/database.mysql.inc использует mysql_connect который нельзя просто так поменять на mysql_pconnect по простой причине:
Вы получите кучу соединений с блокировками таблиц(через LOCK TABLES) и временными таблицами, висящими до истечения таймаута.
Однако проблема решается, если переписать драйвер mysql для друпала учитывая это.
Сайт посвященный празднованию дня системного администратора
Для сибирских сисадминов на скорую руку был слеплен сайтик.
Задействована тема Deco - единственное что поправил - разнес загрузку css иначе, потому как не происходило корректного сжатия CSS.
+ немножко дописывал CSS темы "под модули"
Модули:
Из стандартных:
- Blog
- Book
- Comment
- Database logging
- Forum
- OpenID
- Path
- PHP filter
- Ping
- Poll
- Profile
- Statistics
- Syslog
- Taxonomy
- Tracker
- Trigger
- Update status
- Upload
Из добавленных:
- CAPTCHA+Image CAPTCHA
- Google Analytics
- Tagadelic
- XML sitemap
- Better Formats
- BUEditor
- DST - мое - для нормальной поддержки часовых поясов.
- Meta tags
- Pathauto
- Persistent Login
- Service links
- Token
- Upload path
- + собственный модуль HTML корректора взамен того стандартного фильтра что суется с дру.
Такие дела.
Сам сайт: http://sadays.malyhin.info/
Новая тема блога
Весеннее обострение сказывается на всех нас, разработчиках, клиентах, посетителях сайтов.
Меня стороной оно тоже не миновало. Надоело стандартное оформление Zen Classic на блоге.
Сделал свое. Общая канва такая, хотя все еще не окончательно - тема будет немного меняться - добавятся значки, сменится расположение окон.
Хотелось весеннего настроения и зелени.
Смотрите
Даты на человеческом русском
Вот такой фигней приходится маяться.
$monthes = array(
'января', 'февраля', 'марта',
'апреля', 'мая', 'июня',
'июля', 'августа', 'сентября',
'октября', 'ноября', 'декабря'
);
$dt = '';
if($tricks){
$d = format_date($timestamp, 'custom', 'Ymd');
$t = time();
$dtd = format_date($t, 'custom', 'Ymd');
$dtmr = format_date($t + 86400, 'custom', 'Ymd');
$dyst = format_date($t - 86400, 'custom', 'Ymd');
if($d == $dtd) $dt .= $capi ? 'Сегодня, ' : 'сегодня, ';
else if($d == $dyst) $dt .= $capi ? 'Вчера, ' : 'вчера, ';
else if($d == $dtmr) $dt .= $capi ? 'Завтра, ' : 'завтра, ';
}
$dt .= sprintf(
format_date($timestamp, 'custom', 'j %\s, G:i'),
$monthes[format_date($timestamp, 'custom', 'n') - 1]
);
return $dt;
}
А как вы решате подобные проблемы если надо "очеловечить" сайт?
Маскировка путей
Добавляем в settings.php функцию вида:
<?php
function custom_url_rewrite($op, $result, $path) {
global $user;
if ($op == 'alias') {
if($result != $path) return $result; // there was result already
// Overwrite a menu path already defined, with this code, if the user
// goes to 'tracker', the page 'views/tracker' will be displayed instead
// without any redirection. To achieve this, only the op source act is a
// must, this is optional.
if ($path == 'views/tracker') {
Шкурка
Мы сменили обертку. http://insourcing.ru/
Решили поэкспериментировать, сделав все размеры шрифтов сайта относительными.
Есть правда риски что шапка разлезаться кое у кого будет
Модуль для поддержки временных зон в Drupal 6
Портировал свой модуль с D5 на D6
Брать здесь - http://brainstorm.name/blog/drupal5dstmodule
Пробуйте, ругайте.
Модуль Google Map
Написал свою реализацию "под задачу" модуля для Google Map.
Для заданных нод можно указывать до 50 местоположений на карте.
Брать здесь http://brainstorm.name/products/googlemap.html
Кеширование на файлах. Новая версия. Более тормозно но более гибко
Берем 5ый друпал. Zend_Framework - кладем его в подкаталог library.
В $conf путь к ZF определяется так.
'filecache_zend_path' => 'library' . PATH_SEPARATOR . 'library' . DIRECTORY_SEPARATOR . 'Azarov',
От ZF на самом деле надо очень мало - следующие файлы и каталоги:
Cache, Cache.php, Exception.php, Loader, Loader.php, Version.php
В комментариях описаны примерные конфигурационные параметры.
По умолчанию пользуется стандартный зендовский класс Zend_Cache_Backend_File.
У меня есть своя его версия чуть получше - чистка мусора в ней проводится раз в 5000 раз или как задашь и актуальность записей оценивается по своему.
Поиск и как переопределить индексацию
По следам написанной статьи
Как всем известно при индексировании ноды модуль поиска использует node_view. Берет текст оттуда.... Пхает в индекс.
А у меня задача - пхать не весь текст... Так вот - возникла идея как понять что node_view дернута не из просмотра ноды...
Простая и тупая. Урл то будет не node/12356. А следоовательно зная номер ноды, проверив
arg(0) == 'node' и arg(1) == $nid мы можем убедиться что это стандартный просмотр.
А в остальных случаях node_view дергается чем то еще...
Модуль для работы временных зон в Drupal 5
Как мне известно практически все CMS с открытым кодом страдают этой болезнью :).
А суть ее такова. Все мы с вами живем в разных часовых поясах. Drupal да и другие - решают эту проблему стандартно. Суммируют смещение. И никто, насколько я понима. не задумывался что date() ведь зависти от текущей временной зоны прописанной в системе. Как и другие функции в PHP, идущие по сути из библиотек языка C.
Я сделал модуль и мааааааааленький патч., который решает эту проблему.
nginx+apache+mod_php + eaccelerator + "drupal 502"
Ну чего... вот одна из причин того что мы с эндипостом называем друпал502:
Обнаружен глюк eaccelerator при работе с php в режиме апачевского модуля.
Система просто не подгружала или некорректно подгружана inc/theme.inc в CMF drupal. В итоге из php нельзя было выбить никаких ошибок а сервер давал ошибку 502.
Я привык пользовать php в режиме fast-cgi.
Похоже это специфичная для eaccelerator ошибка когда php пашет как модуль apache, поскольку такое уже замечалось ранее на сторонних хостингах, просто я не придавал этому значения.
Оригинал на моем блоге.
Деревянность модуля search
Возникла задача - некоторые ноды в зависимости от определенного условия надо исключать из поисковой индексации...
Не из выдачи а именно из индексакии. Начинаю копать
Оказывается друпал не предусмтривает такого рода хуков.... вашу ноду он съест и заиндексит в любом случае.
Есть конешно модуль search_block котороый всего лишь заметает дерьмо из индексации.....
Сейчас оцениваю время разработки и ничего в голову не приходит как положить на принцип "не вмешиваться в ядро".
Платные модули
К сожалению видя нулевую реакцию в плане тестирования и прочего от сообщества - код модулей - модуля HTML Corrector собственного производства который не дает тупые сбои начисто убивая маркап как друпаловский(да да, в том числе и в д6) и модуля кеширования для Drupal 6 - теперь закрыты для посторонних глаз и распоространяются за деньги
Походу разработчики друпала считают ненужной валидацию html в нормальном виде
Ну а поскольку тестить поддерживать и прочее мне приходится самому и больше никому ниче не надо....
То вот:
http://brainstorm.name/products
Друпал, часовой пояс и учет DST
Есть у меня задачка с модулями event.
И вот озаботился вопросом правильности времени вводимого пользователем. Ведь мы в двух зонах живем: +3 и +4.
Начал копать в друпале на тему dst. Нет нифига. Просто нифига.
В date_format используется тупо _смещение_ без учета энергосбережения для временной зоны.
ВСЕ. больше упоминаний нема.
Походу надописать свой обработчик для перехода с +3 на +4 в час X? Как вы решаете эту проблему?
Ведь в евентах после такого перехода встрянет неверное время события. Что меня ооооочень не радует.
Кеширование на файлах
Провел свои тесты на производительность со своим модулем кеша.
Вот результаты: http://brainstorm.name/blog/filecache-benchmarks