Posts Tagged ‘php’

Проверка DKIM на PHP

Sunday, August 25th, 2013

  Как это ни забавно, мне не удалось найти в тырнетах ни одной рабочей реализации проверки DKIM подписи писем на PHP. На Perl есть, на Python – пожалуйста, не говоря уже о сишных библиотеках. На PHP отыскалось лишь какое-то поделие злой мартышки на гитхабе, которое как-бы “Finally, a PHP5 class for not just signing, but verifying DKIM signatures”, но в то же время “Still doesn’t verify signatures properly”.
  Пришлось пару дней покопаться в разном коде, почитать внимательно RFC и voila – код уже может подтверждать подпись писем gmail и airbaltic как минимум.
  По хорошему, шимпанзёвое поделие надо полностью переделывать, добавлять полную поддержку RFC. Но это уже без меня.

Безопасность дешёвого хостинга

Thursday, May 5th, 2011

  Безопасность дешёвого хостинга всегда стремиться к нулю. Один раз я сталкивался с этим в nano, теперь вот досталось softserviss заодно с DEAC.
  Попросили меня знакомые залить пару php файлов на хостинг по FTP . Залил и не работает :( Ну стал смотреть что там и как. Впечатлился php версии 5.1.4… Поиск эксплойта занял минут 15 и, о чудо, любые команды от пользователя apache к моим услугам:
Linux plesk-softserviss.asp.lv 2.6.18-194.11.3.el5 #1 SMP Mon Aug 30 16:23:24 EDT 2010 i686 i686 i386 GNU/Linux
  Дальше уж ломиться не стал ибо не собирался. Однако и так было ясно, что слить ВСЕ данные ВСЕХ клиентов этого сервера не составляет труда. Вероятно можно было бы получить и root доступ к самому серверу при благоприятном стечении обстоятельств.
  Мораль: дешевый хостинг – верный путь поделиться своими данными с третьими лицами.

cyrup в ALT Linux

Saturday, August 21st, 2010

  Случайно сегодня обнаружил своё творение в виде пакета в ALT Linux: http://sisyphus.ru/ru/srpm/cyrup
  Это признание :)

Генерация PDF из HTML на PHP

Tuesday, July 28th, 2009

  Требуется: сделать из готовой HTML страницы PDF файл используя средства PHP.
  Усложнения: исходная кодировка – UTF-8 (русские, латышские символы одновременно); HTML код с CSS форматированием.
  Возможные решения:

  1. PHP класс dompdf как парсер HTML + pdflib как движок генерации pdf. Выглядит красиво, работает быстро, вот только поддержка unicode в наличии только в платной версии pdflib – 700 евро вынь да полож.
  2. Другой PHP класс – TCPDF – хоть и поддерживает unicode и работает достаточно быстро, но требует специальной подгонки HTML кода, да и с CSS не дружит.
  3. Последний и единственно приемлемый из обнаруженных мной вариантов – PHP класс mPDF. Поддержка HTML/CSS на достойном уровне. Возможно встраивание единичных кодовых страниц помимо полных utf-8 шрифтов, что значительно уменьшает размер генерируемого pdf файла (многоступенчатая конвертация шрифтов – ещё то развлечение). Одна только проблема – тормозит жутко.

  Есть ещё некоторые надежды на dompdf – в версии 0.5.2 вроде обещают поддержку UTF-8. А ещё, некий умелец вроде присобачил TCPDF к нему в роли движка генерации, что теоретически даст хорошую скорость при хорошей поддержке HTML.

goto в PHP 5.3

Tuesday, June 30th, 2009

  Наконец-то ! Дождались ! В php 5.3.0 появился оператор GOTO
  Теперь даже те, у кого проблемы с логикой могут кодить на PHP :)

Такой забавный pecl-memcache

Thursday, April 16th, 2009

  Решили на днях обновить pecl-memcache до последней версии. Вроде вышла уже как три месяца назад, почему бы и нет (спойлер – Package Bugs прочесть в этот раз никто не удосужился). Поставили сначала на минорных серверах, потом на inbox.lt, а сегодня я залил обновление на основные сессионные сервера. Ииии…
  Сегодня днём на inbox.lv пару часов можно было наблюдать забавный глюк – в почту можно было войти, но нельзя было выйти :) Вернее, можно было, но не всегда с первой попытки…
  Разработчики pecl-memcache, вместе с исправлением багов, поломали важную фичу – запись в несколько memcached серверов одновременно.

nano.lv как хостинг

Friday, January 2nd, 2009

  На днях знакомый прислал мне классную ссылку на интернет сайт, размещённый на хостинговой площадке фирмы nano.lv. Оказывается, за неполных три LVL несложными манипуляциями можно получить удалённый доступ в основную систему сервера со всеми вытекающими – начиная от сбора информации и заканчивая атаками DoS и получением рутовских прав.
  Что бы я хотел сказать treck-у по этому поводу… Внешний клиент для админа это всегда враг, главной целью которого является полный захват сервера либо выведение его из строя. Именно исходя из этого утверждения следует строить хостинговую систему и всегда думать о балансе между предоставляемыми возможностями и общей безопасностью системы.
  С другой стороны, предоставляя пользователям удалённый доступ к системе с возможностью запуска приложений, очень трудно (скорее даже невозможно) обеспечить разделение ресурсов и безопасность основной системы без использования полной виртуализации для каждого клиента. До тех пор, пока пользователь обслуживается системным ядром, любая ошибка в его коде может быть использована для отказа в обслуживании всего сервера. А ошибки и сплойты для linux это естественная и бесконечная история его развития. И grsecurity тут не поможет. Аминь.

CyrUp – Новогодний выпуск

Saturday, December 27th, 2008

  Почти три года назад я опубликовал исходный код проекта cyrup на sourceforge.net. Более тысячи копий было загружено за это время. Не много, но достаточно для узконишевого продукта.
  Сегодняшний выпуск предновогодний и почти юбилейный :)

Новый php, новын глюки

Thursday, November 22nd, 2007

  На днях вышел новый PHP версии 5.2.5. Помимо исправления старых глюков, разработчикам похоже удалось внести новые ошибки. В отличие от предыдущей версии (джентушный ибилд php-5.2.4_pre200708051230-r2), новый php-5.2.5 падает в segfault каждые 5 минут при относительно высоких нагрузках (~400 запросов в секунду).
  Похоже не стоит спешить обновлять PHP. Лучше подождать обновлений последних обновлений :)

Как я чинил Inbox Mail+

Wednesday, November 21st, 2007

  Настоящие программеры не любят исправлять ошибки в своих программах, называя их фичами. Именно по этой причине на админов порой ложится эта трудная задача.
  Да возрадуются платные пользователи Inbox Mail+ ! Теперь они могут купить себе подписку на 10 лет вперед и не опасаться инфляции. Из-за странного бага в sql (“INTERVAL 1 WEEK” вызывал ошибку, хотя именно так написано в документации), дата начала подписки всегда устанавливалась текущим днем и срок подписки не суммировался с ранее приобретенной. Так же, была исправлена ошибка позволяющая пользователям с просроченной подпиской, продолжать использовать некоторые преимущества платных пользователей.