root 0 PHP Linux Ubuntu Tweaks Фриланс Freelance.com 2 комментариев
|
Worpdress optimization
Wordpress is CMS - system for website's content management. It's easy and powerful, and compatible with most of servers, but as a payment, it's also heavyweight and not optimized.
Vitaliy Blats professional server optimizer.
|
root 0 Информационная безопасность Tweaks Работа Новые разработки Почта Без комментариев
|
О замене существующих электронных почтовых систем, или "http vs smtp smtps imap pop pop3 и их модификаций"
Очень часто мне приходится сталкиваться с проблемами клиентской почты. Кто-то почту не отсылает, кто-то не принимает, чья-то почта попадает в спам, кто-то не может подключиться к серверу, у кого-то спамят, кто-то не может получить список своих папок во входящих. В общем проблем более чем много.
Чем больше я работаю с почтой, тем виднее становится причина такого количества проблем: отсутствие унификации. Отсутствие от слова "совсем". Многие возразят словами "протокол SMTP нужен, и он унифицирован" на что я отвечу, что дело не в протоколе SMTP, ибо он обеспечивает только передачу данных, но не обеспечивает дополнительных сервисов. Это как азбука морзе или бинарный код: с их помощью можно передать что угодно, даже картинку и видео, вопрос только во времени, удобстве, и количестве надстроек. Но дело ведь не в передаче данных. Данные нужно хранить, данные нужно передавать, данные нужно обрабатывать, и существование трех протоколов (с их количеством безопасных и не очень портов) только для обмена данными - это чересчур как по мне. Чтобы вам было понятно, приведу пример: настройте мне систему, которая позволит мне читать почту, которую мне будут слать клиенты. При чем я не хочу пользоваться Outlook'ом и прочими клиентами, равно как не хочу пользоваться всякими Squirelmail или Roundcube. Я хочу просто читать свою почту. И отсылать ее. На настройку такой системы вы убьете ЧАС как минимум, и это если будете пользоваться настройками из коробки, установленными через apt-get/yum. А если после того как вы мне это сделаете, я попрошу добавить туда еще одного пользователя, из другого домена - вы убьете на это еще один час. И вряд ли сделаете. Поэтому почтовая система нуждается в тотальной переработке. Устаревшие pop,smtp,imap давно себя изжили! А мякотка в том, что и придумывать-то ничего не нужно, нужно всего лишь отдать почту вебу. В самом деле, что может быть проще, имея веб-сервер со своей веб-директорией для домена, иметь в ней еще и секретную папку ".mail" где будет храниться почта, которую туда сможет записать каждый (при наличии определенных условий, конечно), которая будет храниться в виде текстовых файлов, или даже HTML, доступ к которой сможет получить любое ваше приложение, а при наличии системы авторизации - извне тоже ? Обмен информацией будет вестись при помощи всего лишь одного протокола - HTTP, который прост в семантике, универсален, существует на любом устройстве, и может обрабатываться даже скриптом на баше. Да, почтовая система на баше, вы правильно поняли. Итак, плюсы возможного перевода почты на HTTP: 1. Простота установки. Для работы почтовой системы понадобится всего лишь веб-сервер, который и так устанавливается. 2. Простота обмена информацией. Для отсылки письма нужно всего лишь передать серверу POST-запрос, в котором будет просьба записи письма, необходимые реквизиты, само письмо, имя аккаунта, и вообще все что мы только захотим. Неизвестные параметры просто отсекутся. 3. Отсутствие необходимости настраивать несколько разных систем - релеев, серверов хранений, серверов отсылки, авторизаций, проверок на отправку, проверок на прием, DKIM, SPF, отдельные MX, и многого другого. Клиент (а это может быть браузер, отдельный клиент, скрипт, или кто угодно) просто передает домену адресата команду "отправляю вам письмо". 4. Следствие из третьего пункта - меньший шанс чему-то поломаться, вследствие чего сократится трата времени на настройку и фиксы. 5. Относительно легкий доступ к почте с возможностью ее просто прочитать, или скачать, или передать далее. Нет ничего проще текстовых или html файлов в определенной папке, читать которые можно каким угодно приложением. 6. Высокая скорость поиска, и вообще работы. Не будет смысла выкачивать всю почту и хранить ее локально на компьютере чтобы быстрее искать, либо ждать минутами, пока клиент найдет нужное вам содержимое по ключевым словам, выкачивая почту. HTTP весьма быстр и удобен. 7. Клиентам не придется извращаться, отправляя разного рода вложения в почту. Все вложения могут идти дополнительными файлами, главное письмо может содержать только ссылку-инклуд на них. Или вообще на внешний источник. Зачем ждать, пока вложение прикрепится, отошлется, потом ждать пока оно скачается, если вашему адресату его можно передать прямо с вашего компьютера ? 8. Простая система хранения. Все хранится в одной папке - .mail, которая лежит в корневой папке домена. Это все. Все письма и настройки, хранятся в этой папке, не придется больше шариться по конфигам sendmail, exim4, postfix, dovecot, привязывать базы данных MySQL, ковыряться с настройками доступа. 9. Вытекающая из предыдущего пункта возможность легкой миграции почты с одного сервера на другой. Заархивировал директорию на одном сервере, разархивировал на другом. Это все. Кстати не лишним было бы предусмотреть миграцию в самой реализации сервера, по типу кнопки "Добавить мою старую почту". Это удобно. 10. Усовершенствованная возможность борьбы со спамом и использованием чужих серверов для спама. Поскольку все будет делаться в пределах сервера адресата, он сам будет бороться со спамом путем разных проверок. 11. Поддержка плагинов. Нет ничего проще, чем разместить в папке .mail, ваш собственный скрипт, который будет обрабатывать почту так как вам нужно. 12. Удобная диагностика. В отличие от существующей системы, сервер может отвечать клиенту на лету о статусе почтового сообщения, было ли оно принято, было ли оно прочитано, по какой причине не принято, и так далее.
Проект стартовал
Здесь я буду перечислять основные фичи. Черновик.
Авторизация при отправке письма Есть очень легкий, универсальный способ авторизации, который плюс к тому же позволит эффективно бороться со спаммерами и флудерами - токен. Давайте представим, что мы хотим отослать письмо с нашего адреса "admin@noname.com" на почту "vasya@microsoft.com". Процесс будет выглядеть так: a) Наш клиент авторизуется логином и паролем на сервере noname.com, при чем через обычный POST-запрос; б) Сервер noname.com генерирует токен, который сохраняет у себя в базе и отдает нашему клиенту; в) Наш клиент при помощи того же POST-запроса, шлет серверу microsoft.com письмо с текстом самого письма и токеном; г) Сервер microsoft.com отсылает серверу noname.com вопрос, создавал ли он такой токен, в случае положительного ответа, письмо сохраняется, в случае отрицательного - адресат помещается в спам-лист. Реализация функционала авторизации на PHP (самом популярном языке) займет 10 строчек на каждом из серверов. Метод работы просто и понятен. Чем-то напоминает "подтверждение регистрации по почте". В обмене информацией используется один протокол HTTP, и три запроса, отправитель->сервер отправителя, отправитель->адресат, адресат->сервер отправителя. Все просто и понятно.
Статья будет периодически дополняться, так что добро пожаловать! |
root 7 Информационная безопасность JavaScript PHP Фриланс Работа Без комментариев
|
Wordpress malware, вирус, jquery.min.php и все что с этим связано
Как-то связался со мной очередной клиент, пожаловался мне что его забанил хостер за "malware". Хостер как и полагается, оказался шаред, а самое прикольное что эти дебилы умудрились отключить пользователю SSH, мотивируя это "ограничением аккаунта". Это все равно что сказать "Уважаемый клиент, мы обнаружили у вас вирус, поэтому доступ к клавиатуре будет закрыт, пока вы не вылечитесь от вируса". Ну да ладно. Анализируя контент клиента, я понял что он использует недоCMS под названием Wordpress. Тогда не удивительно и вполне себе предсказуемо. Полазив еще немного по контенту, я нашел код этого malware:
Ничего как бы страшного он не делает, расшифровать и понять это под силу даже школьнику, однако хостеры иного мнения, и банят за наличие такой штуки. Дальнейший поверхностный анализ показал, что заражается исключительно файл "header.php" всех тем, доступных в папке /wp-content/themes. Не обошлось без минутки юмора:
Два одинаковых малваря в одном и том же файле. Определенно писал школьник, почему-то считающий что в скрипте может быть только один закрывающий тег </head>
К счастью рецепт излечения прост: редактируем файл и просто удаляем из него эту строчку. Чтобы воспрепятствовать дальнейшему заражению (а оно будет, если вы не смените пароли/хостера/страну) - всего лишь поставьте права r-xr-xr-x (555) на файл header.php Кто не помнит как это делается, напоминаю: chmod 555 header.php, а еще лучше chmod 555 `find -name 'header.php'` от корня - это поставит необходимые права доступа ВСЕМ файлам, найденным у вас в папке. Разумеется, если у вас Linux-хостинг, и вы имеете доступ к SSH, хотя бы ограниченно-клиентского уровня.
Судя по количеству подкаталогов у моего клиента, количеству Wordpress-копий, и количеству зараженных файлов - заражение велось либо через что-то очень забагованное внутри Wordpress (и это не тема, они были разными), либо рекурсивно через консоль и при участии/бездействии хостера. Мораль сего рассказа такова: дешевый VPS стоит 5 баксов, и я считаю что это приемлемая цена за отсутствие такого геморроя, тем более что плюсов намного больше.
Удачного лечения.
|
root 1 Linux Ubuntu Linux ElementaryOS Tweaks Без комментариев
|
Elementary OS Yosemite theme
Существует много тем для Elementary OS и Cinnamon, косящих под Yosemite \ Lion. Все они выглядят убого, поскольку где-то все равно содержат нестыковки по цветам, вследствие чего выглядят как "нечто одно, к чему прицепили нечто другое". Мне стало скучно, и я решил помочь сообществу, запилив нормальную тему, свободную от недостатков существующих. Хорошие теплые цвета, унифицированная расцветка для GTK2, GTK3, Metacity придают приложениям современный пристойный вид, независимо от того, что это за приложение: synaptic, firefox, панель управления, или всплывающее окно.
1) Скачиваем здесь: http://pretty.biz.ua/proxy/elementary-yo.zip 2) Распаковываем 3) С пользователя "root" копируем распакованную директорию в /usr/share/themes 4) Наслаждаемся после перезапуска
|
root 0 PHP Tweaks Фриланс Без комментариев
|
Простой график на PHP и HTML
Делая один интересный проект для клиента с фриланса, натолкнулся на задачу создать диаграмму для медленных запросов MySQL, и решил поделиться, может кому-то пригодится. Забегая вперед, покажу картинку что у нас должно получиться в итоге...
Приведу краткий скрипт, который рисует такое чудо:
Как видите, ничего сложного нет, скрипт не использует ни одну экзотическую библиотеку, выводя все средствами HTML и CSS. И может быть оптимизирован, если вы обладаете знаниями PHP чуть выше меня
Удачного вам программирования!
|