• Несколько вопросов к толковым разработчикам относительно mvc и php?

    KEKSOV
    @KEKSOV
    Просто как идея — возьмите Phalcon и с его помощью создайте модель/контроллер для какой-нибудь из ваших сущностей и посмотрите, насколько удобно/быстро работать с этим фреймворком. Я недавно начал его изучение и пока в полном восторге. Для меня ключевым моментом в выборе именно этой платформы для своего очередного проекта стало то, что этот фреймворк является расширением PHP, написанным на С, иными словами, он обгоняет по скорости/памяти любое другое решение на чистом PHP. Ну и все плюшки MVC в нем есть, плюс поддержка одновременно работы с MySQL и PostgeSQL. Кроме того, на горизонте есть Zephir, который позволит писать компилируемые расширения для PHP. Может я и не прав, но для биллинга важна производительность, пользователей-то всегда много…

    ПС. Если возникнет желание потестить его под виндой, то напишите в личку, там есть нюансы с установкой.
    Ответ написан
  • Выбор системы резервирования в маленький офис

    KEKSOV
    @KEKSOV
    Для создания полного образа системы домашних компов я давно и успешно пользуюсь Macrium Reflect FREE Edition. Неоднократно восстанавливал данные с её помощью и клонировал диски. Большой плюс — бекапный образ можно подключить как еще один диск в системе и вынуть из него, все что потребуется. Есть только одна проблема — бесплатная версия не работает под серверными ОС и не видит динамические диски, которые система делает, когда Вы объединяете диски в виндовый RAID

    Если нужно бекапить именно пофайлово, то обратите внимание на Runtime Software и их утилиту Shadow Copy, но сжатие придется прикручивать самому.
    Ответ написан
  • Как можно эффективно (желательно без военных действий) «привести в соответствие» Интернет-магазин?

    KEKSOV
    @KEKSOV
    Первым делом, оставьте негативный отклик на Маркете, если там кто-то есть живой, то они отреагируют.
    Ответ написан
    Комментировать
  • Книги о виртуализации?

    KEKSOV
    @KEKSOV
    Сдается мне, что Вы говорите об Эмуляторе Вычислительной Машины, который может работать в рамках любой ОС. Троичною логику современное железо не поддерживает, значит, гипервизор вам тут не сильно поможет, так как ему просто нечего виртуализировать.

    По поводу виртуальных машин рекомендую ознакомиться с «началом начал» — язык и ОС Оберон. Современная инкарнация этой системы A2 работает на голом железе

    Цитата:
    По утверждению Вирта, разработчики языка Java за несколько лет до её создания «изучили исходные коды Оберона и, в частности, исходные коды обероновских сборщиков мусора. Потом они испортили Оберон синтаксисом Си и назвали получившееся словом Java».
    Ответ написан
    1 комментарий
  • Расширяю знания по JS. Какие фреймворки изучать?

    KEKSOV
    @KEKSOV
    Не так давно появился Polymer от Гугла. Имеет смысл потратить на него время для расширения кругозора, так сказать, весьма любопытная система. Ну и незабвенный todomvc.com Вам в помощь, кроме Вас никто не сможет решить, что вам больше нравится. А если речь идет о промышленной добыче денег, зарабатываемых программированием на JS, то, ИМХО, время, потраченное на изучение ExtJS будет отличной инвестицией ваше светлое будущее.
    Ответ написан
    1 комментарий
  • Какой загрузчик лучше использовать?

    KEKSOV
    @KEKSOV
    Про F11 не уверен, но что-то, весьма похожее на вашу задачу для GRUB, обсуждают здесь
    Ответ написан
    Комментировать
  • Посоветуйте заграничного регистратора доменов

    KEKSOV
    @KEKSOV
    Вы хотите именно регистрировать новые домены у зарубежных регистраторов или же просто перенести туда NS для обслуживания? ИМХО, регистрация доменов .ru и.рф в любом случае сведется к совершению некой юридической процедуры между RU-Center и любым другим контрагентом, желающим зарегистрировать домен в этих зонах. Других регистраторов для .ru и.рф просто не существует, хотя, (посреднические) услуги по регистрации оказывают не только российские компании. Иными словами, ваше желание защитить свои инвестиции таким образом от своеволия наших чиновников напрасно.
    Ответ написан
    3 комментария
  • MySql cp1251 -> Jabber utf-8

    KEKSOV
    @KEKSOV
    А что показывает, скажем, SQLyog? Я имею ввиду в текстовых полях.
    Вообще, конвертировать таблицу можно при помощи команды ALTER TABLE CONVERT TO CHARACTER SET utf8;
    Ответ написан
  • Зачем мне нужен iPhone?

    KEKSOV
    @KEKSOV
    Не такое уж и унылое старьё Samsung GT-B5512 Galaxy Y Pro Duos. По отзывам держит батарею 4-5 дней. Если без QWERTY и современнее, то обратите внимание на Huawei Ascend Mate
    Ответ написан
    1 комментарий
  • Как обезопасить управление сервером?

    KEKSOV
    @KEKSOV
    Было дело, приходилось управлять сервером через… e-mail :) все остальные каналы были закрыты безопасниками. На сервере стояла самописная клиентская программа, которая опрашивала внешний smtpd.

    smtpd нужно расположить на внешнем vps сервере и забирать почту с него через цепочку OpenVPN тунелей (цепочка должна начинаться на управляемом сервере и терминироваться на smtpd vps), который прыгает по нескольким хопам, расположенным, желательно, в разных частях света, в странах типа Китая, Ирана и Пакистана. Почта, ессно, должна шифроваться и попадать на наш smtpd сервер через цепочку email форвардов, так же расположенных в экзотических странах. Цепочки email форвардов можно выстраивать самым запутанным образом с петлями и тупиками — чтобы было множество ложных путей.
    Ответ написан
    Комментировать
  • Оцените реалистичность организации работы с удаленными дизайнером и веб-разработчиком

    KEKSOV
    @KEKSOV
    Неоднократно успешно работал по такой схеме: мы рисуем прототип, дизайнер наводит красоту (в фотошопе), верстальщик режет HTML и CSS, программист натягивает код на движок.
    Ответ написан
    Комментировать
  • Подписывание http-запросов

    KEKSOV
    @KEKSOV
    Было у меня похожее решение — все AJAX запросы шифровались blowfish при помощи пароля пользователя, который он указывал при логине
    Ответ написан
    Комментировать
  • Что выбирать: SQL vs NoSQL?

    KEKSOV
    @KEKSOV
    Посмотрите в сторону Percona Server + Percona NoSQL Это всем давно и хорошо известный MySQL. Где нужны сложные запросы для анализа данных — используете обычные SQL запросы, где нужна скорость — обращаетесь к тем же самым данным через NoSQL интерфейс. Еще один бонус — мастер-мастер репликация из коробки.
    Ответ написан
    Комментировать
  • Как найти бэкдор на взломанном сайте и отследить источник

    KEKSOV
    @KEKSOV
    Буквально вчера занимался подобной проблемой на сайте знакомых с Joomla.

    1. Зайдите по ssh и сделайте архив всего сайта, скачайте его к себе на машину.
    2. Натравите на архив Касперского или Sophos (опыт показал, что они отлично выявляют зловреды, хотя и не все)
    Все обнаруженные уязвимости вычистите прямо на сайте через vi. Если обнаружится, что eval запихали в EXIF картинок, то их просто надо пересохранить и залить обратно на сайт.

    Пока антивирус делает свое дело, займитесь следующим:
    1. Проверьте .htaccess на наличие левых редиректов. В моем случае все пользователи отправлялись на страницу phpinfo.php c какой-то порнухой.
    2. Поищите код, который не найдут антивирусы:
    2.1 В некоторых файлах встроена конструкция, позволяющая сохранить файл в произвольное место на сайте. В моем случае это находилось при помощи команды
    find. -type file | grep php | xargs grep -l "<?php if (@"

    2.2 Поищите и проанализируйте файлы, которые обращаются к exif
    find. -type file | grep php | xargs grep -l exif_read_data

    2.3 Найдите картинки с троянами
    find. -type file | grep jpg | xargs grep -l eval

    2.4 Поищите preg_replace, который потом выполняет код
    find. -type file | grep php | xargs grep -l preg_replace.*\/e

    3. Анитивирусы наверняка найдут какие-то файлы. Загляните в них на хостинге, как правило там идет закодированная хрень и проверка каких-нибудь паролей. Вот эти самые проверки могут дать дополнительные ключи для поиска. В моем случае я нашел еще ряд файлов при помощи команд
    find. -type file | grep php | xargs grep -l 2970d43d7bf4115cdc60e2453bf48b52
    find. -type file | grep php | xargs grep -l security_code

    4. Внимательно проанализируйте файлы, которые находятся рядом с файлами бекдоров, скорее всего именно в них и находится уязвимость.
    5. Слейте дамп базы и поищите в нем eval, preg_replace и прочие прелести
    6. После зачистки всей дряни снова сделайте бекапный архив сайта

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

    На сервере, где хостятся мои знакомые есть только cvs, им и воспользуемся. Аналогичные действия можно сделать и при помощи git или svn.

    1. Вышли в домашнюю директорию
    cd

    2. Создали пустую директорию для нашего репозитория
    mkdir cvsroot

    3. Заинитили репозиторий
    cvs -d ~/cvsroot init

    4. Перешли в директорию, где находится корень сайт. Пусть у вас есть такая структура /home/myusername/mysite/htdocs. Тогда
    cd ~/mysite/htdocs

    5. Делаем первичный импорт в репозиторий
    cvs -d ~/cvsroot import htdocs initial_import initial

    6. Сейчас будем удалять старый сайт и забирать его из репозитория
    cd ~/mysite
    mv htdocs htdocs.bak
    cvs -d ~/cvsroot checkout www

    7. Добавляем в .htaccess правило, защищающее служебные файлы
    RedirectMatch 404 /CVS(/|$)

    8. Что это нам дает? Возможно быстрой проверки измененных файлов
    cd ~/mysite/htdocs
    cvs -qn update

    Если все было сделано правильно, то ответ будет
    M .htaccess

    9. Записываем наши изменения в репозиторий
    cvs -q commit -m update

    Далее, включаем в cron команду cvs -q commit -m update, да хоть бы и раз в минуту (если сайт сильно посещаемый), включаем лог файлы и ловим изменения, которые происходят в системе. Определив время и изменившиеся файлы, по логам смотрим что, кто, куда и как делал.
    Ответ написан
    1 комментарий
  • Объясните странное поведение INSERT в mysql_query?

    KEKSOV
    @KEKSOV
    А часом у Вас на поле ident нет ли уникального индекса? А то Вы записываете три записи с одинаковым значением $idea_count — в вашем случае 3.

    Надеюсь приведенный фрагмент кода это просто тест, а не кусок из вашего проекта? В противном случае это одно большое отверстие в безопасности сайта ;) Переходите на использование mysqli и prepared выражений. Это резко повысит скорость выполнения запросов и избавит проект от большого числа проблем с безопасностью.
    Ответ написан
    4 комментария
  • Веб-интерфейс клиента почты

    KEKSOV
    @KEKSOV
    Веcьма популярная веб морда для IMAP почты roundcube Для перегонки eml в IMAP сервер придется немножко повозиться
    Ответ написан
    Комментировать
  • Как организовать разработку с системой контроля версий?

    KEKSOV
    @KEKSOV
    1. Для отслеживания изменений в БД несколькими разработчиками воспользуйтесь deltaSQL
    2. Для управления проектами и исходниками очень советую купить лицензионную JIRA и Fisheye (цена на оба продукта $10 для 10 разработчиков)
    3. Если по каким-то причинам п.2 не может быть реализован, то воспользуйтесь аналогичным сервисом bitbucket.org Он позволяет бесплатно открывать приватные репозитории. Сперва зарегистрируйтесь сами, а потом пришлите инвайты своим сотрудникам — это позволит увеличить число бесплатных пользователей, которые могут работать над вашими проектами.

    Вообще, настройка воркфлоу это отдельная и сложная тема. Желательно, чтобы кто-то из сотрудников занимался этим процессом целенаправленно. Скажем, обновлять продакшн серверы должен специальный человек, который понимает, что он делает и, в случае чего, сможет исправить косяки, которые неизбежно будут случаться в процессе выхода новых версий.

    ПС. Не в коем случае не ведите разработку на продакшн серверах! Все то же самое окружение можно настроить и под виндой.
    Ответ написан
  • Железо для сервера обработки изображений?

    KEKSOV
    @KEKSOV
    Могу посоветовать обратиться в srv-trade.ru Когда мы себе собирали железку для базы данных, их спецы очень здорово помогли нам с выбором, они реально знают все тонкости, о которых мы сами никогда бы даже и не подумали. Они действительно могут помочь подобрать железо под конкретную задачу.
    Ответ написан
    1 комментарий