• Грабли при верстке HTML писем

      Довольно часто наши клиенты устраивают регулярные рассылки с новостями. Почти всегда их не устраивают текстовые рассылки или простое оформление HTML рассылок. Наши дизайнеры вовсю креативят, а мы потом набиваем шишки при верстке их макетов с корректным отображением во множестве почтовых клиентов.

      Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
      Читать дальше →
      • +264
      • 86,8k
      • 77
    • Уязвимость в стандартной функции glob() как угроза для FTP-серверов

        Сайт SecurityReason сообщает об обнаружении опасной ошибки в реализации библиотечной функции glob() из стандартной библиотеки языка C (libc) на множестве платформ.

        Эта функция предназначена для получения списка файлов, чьи имена удовлетворяют заданному шаблону. Ошибка заключается в том, что ограничение на выдачу функции, задаваемое переменной GLOB_LIMIT, не действует в случае задания некорректных путей в шаблоне. Такими некорректными значениями могут быть, например, «*/../*/../*foo» или «{..,..,..}/*/{..,..,..}/*bar». При этом вызов функции glob() может исчерпать всю доступную память процесса.

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

        Уязвимости подвержены, по последним данным, как минимум следующие ОС: OpenBSD 4.7, NetBSD 5.0.2, FreeBSD 7.3/8.1, Oracle/Sun Solaris 10, а также все версии Linux с GLIBC. Уязвимость пока что устранена только в NetBSD; компании и сообщества, занимающиеся разработкой вышеперечисленных (за исключением NetBSD) операционных систем, пока не дают никакой информации; именно поэтому уязвимость классифицируется как «0-day». Сообщается также, что vsftpd не подвержен уязвимости.

        Желающим попробовать уязвимость в действии могу предложить набрать в bash консоли команду наподобие
        ls ../../*/../*/*/../../*/*/*/*

        Можно эксплуатировать, например, из PHP:
        php -r 'print glob("../../*/../*/*/../../*/*/*/*");'

        или Python
        python -c 'import glob; glob.glob("../../*/../*/*/../../*/*/*/*")'
        и из любого другого языка, обращающегося к этой функции.

        Оригинальный отчет об уязвимости тут: securityreason.com/securityalert/7822
      • Ставим вторую видеокарту в разъём PCI-Express x1

          Если в компьютере имеются 2 видеовыхода и захотелось подключить 3 монитора, то с некоторой вероятностью сделать это просто добавлением второй видеокарты не удастся — не все материнские платы имеют 2 разъёма PCI Express X16, а в многочисленные разъёмы PCI Express X1 видеокарты обычного размера не встанут из-за несовместимости по разъёму. Не все знают, что на самом деле установка длинного разъёма X16 в короткий слот возможна, поэтому не обязательно для 3-го монитора покупать другую и более дорогую материнскую плату. Способам расширения потенциальных возможностей компьютера посвящена эта статья, а также она развеивает сомнения и опасения о том, что что-то при доработке платы напильником не получится. Час работы — и 3-й монитор к Вашей системе будет подключен.
          Читать дольше
        • Балансировка нагрузки с LVS

            Итак, у вас есть нагруженный сервер и вам вдруг захотелось его разгрузить. Вы поставили и залили такой же (такие же), но пользователи упорно ходят на первый. В этом случае конечно же нужно задуматься о балансировке нагрузки.

            Читать дальше →
          • Установка Debian удалённо: PXE + SSH

              Задача


              Установить Debian Lenny на сервер, который находится на удалённой площадке.
              На площадке уже есть один Linux-based сервер, и есть инженер, который может подключить новый сервер к сети и включить.

              Решение


              Загрузить образ netinstall по PXE и воспользоваться пакетом network-console для установки, используя ssh.
              Кому интересно, смотрим подробности
            • Браузерный интерпретатор Python

                image

                На сайте people.csail.mit.edu появился интерпретатор языка Python. Также там есть несколько примеров. Отладку программы можно производить пошагово.
                Правда, существуют некоторые ограничения: там нет модуля импорта или ввода/вывода файлов. Поэтому понадобится это, в основном, для показательных и учебных целей.
                Всё это базируется на версии языка Python 2.5
              • Автоматическая индексация файлов проекта

                  Несмотря на то, что статей по теме «использование Vim в качестве IDE» достаточно много, результат меня не удовлетворял. Мне очень не хватало автоматической, прозрачной для пользователя (то есть меня) генерации тегов для всех файлов в проекте, причем файлы проекта совсем необязательно должны лежать в одной директории и ее поддиректориях, а формировать список файлов должно быть легко и приятно.

                  Кроме того, я должен иметь возможность легко переносить проект с одного компьютера на другой и не должен быть привязан к конкретной директории проекта.

                  Долгие поиски плагинов с необходимым функционалом не увенчались успехом, поэтому было принято решение написать такой плагин. Я назвал его indexer.
                  Читать дальше →
                • Автоматизация торговли: краткий пример реализации

                    Любое уважающее себя предприятие в своих перспективах видит рост. На определённом этапе развития может сложиться острый вопрос информатизации, а иногда и автоматизации операций. Документооборот возрастает и справляться с бумажным массивом становится уже не так просто, особенно если объёмы обрабатываемой информации очень велики.

                    Сегодня я поведаю небольшую историю о том, как довелось нам автоматизировать торговые операции и документооборот на одном небольшом предприятии своими силами. Постараюсь охватить максимум вопросов и способов их решения.
                    Читать дальше →
                  • Организация SSH-доступа по одноразовым паролям

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

                      Существует несколько решений этой задачи. Например, можно использовать одноразовые пароли, а именно систему s/key, использующую для генерации паролей алгоритмы md4 и md5. Об этой системе и будет рассказано далее.
                      Читать дальше →
                    • Смотрим кино с субтитрами сразу на двух языках

                        Увидев только что на Хабрахабре вот эту блогозапись, подумал, а нельзя ли сделать так в Линуксе. Оказалось — можно. Причём метод не зависит от проигрывателя видео, главное, чтобы программа поддерживала субтитры в формате ASS.

                        Скриншот
                        Читать дальше →