Обновить
8
0
ahaidukov@ahaidukov

Пользователь

Отправить сообщение

Задача 19: Секурность

Время на прочтение1 мин
Охват и читатели1.5K
Задача: сделать достаточно защищенный механизм аутентификации на PHP.

Способ 1.
В форму передается случайная последовательность, на стороне сервера она запоминается в таблице в связке SESSION_ID && S_KEY. На стороне клиента выполняется преобразование вида
sha1(sha1(password) + S_KEY). sha1(password) — предпологаемый хэш пароля в базе, S_KEY — переданная последовательность. В результате мы имеем постоянно меняющийся хэш, который безопасно передать на сервер.
На сервере полученный хэш сравнивают с sha1(password_from_db + S_KEY). Если совпадает, в переменную $_SESSION['user'] заносим подгруженный инстанс класса пользователя.

Тут все хорошо и правильно, но не совсем секурно.

Что может сделать злоумышленник?
1. Украсть кукизы с сессией.
2. Перехватить трафик и снова украсть сессию.

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

IP — не выход, его можно подменить. Да и для людей, сидящих за NAT, IP будет общий.

Что же делать?
Использовать удалённый порт. Как правило браузер не меняет порт для сайта, и он долго остается неизменным. NAT тоже не меняет порт, потому что он ему нужен для проброса пакетов.

Замечание: данный метод применим только к критически важным участкам системы. Для пользователя хватит и Способа 1. Все потому, что никто не гарантирует статичность порта на всю сессию, а это повлечет постоянные ре-логины, что пользователь просто не моймёт.

Паттерны проектирования для человеков.

Время на прочтение4 мин
Охват и читатели31K
Была задача в максимально короткие сроки (зачет нужно было сдавать) человеку далекому от программирования объяснить паттерны на самом простом уровне.
В результате баланса простоты изъяснения и адекватности, образовалась эта шпаргалка.
Просьба оценить эту самую адекватность и простоту.
Читать дальше →

RoundCube — Отказываемся от GMail

Время на прочтение2 мин
Охват и читатели7.6K
Добрый день, уважаемые хабравчане.
Все мы знаем о могучей корпорации Google, и большинство из нас, вероятно, пользуется программами этой компании.

Кто-то души не чает в этих программах с вечным статусом «бета», а кто-то считает Google «корпорацией зла» и ставит запрет на приём куков с подозрительных серверов.

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

Этот пост я пишу в канун нового года, по нескольким причинам:

Вчера зарелизила, вероятно, лучший свободный «web based» почтовый клиент roundcube, и выпуск релиза был приурочен к новогодним праздникам. Таким способом разработчики хотели порадовать своих пользователей.

Шаг первый - Отказываемся от GMail.

Krumo — помощник для отладки php кода

Время на прочтение1 мин
Охват и читатели1.7K
Довольно часто для отладки кода приходится просматривать содержимое переменных, как правило для этого используется такие команды как echo, print_r(), var_dump(). Но тут много неудобств, бывает что переменных много, бывает что вобще не знаем какие переменные используются (например при разборе чужого кода).
Перечеслять неудобства можно долго, тут каждый выкручивается по своему, кто-то пишет свои функции, кто-то еще что-то выдумывает. Совсем недавно столкнувшись в очередной раз с такой проблемой нашел на меня псих, результат день в гугле, а итог вот этот простой класс Krumo
Читать дальше →

Практика использования mod_rewrite

Время на прочтение6 мин
Охват и читатели19K
Статья предназначена тем, кто уже знаком с Apache Rewrite module и пусть не всегда, но использует его в своей нелегкой жизни. Вопрос рассматривается в контексте использования PHP как серверного скриптового языка.

Не найдя подходящей статьи на Хабре решил восполнить этот пробел и подробнее остановиться на таком замечательном инструменте, как mod_rewrite для Apache. Я не буду описывать всех премудростей построения красивых URL'иков и описывать процесс работы парсера POSIX-like регулярных выражений в Apache. В этой, я надеюсь, не последней статье по mod_rewrite я бы хотел подробнее остановиться на проблеме использования. Если в кратце — почему mod_rewrite и что он дает с небольшими примерами.

Читать дальше →

Prototype & Ajax.Request: важный момент при отлове проблем на сервере

Время на прочтение2 мин
Охват и читатели801
Работая над проектом, наш разработчик столкнулся с одной особенностью Prototype, проявляющейся при обработке ошибок Ajax-запросов:

Взгляните на следующий код (используется Prototype 1.6.0.3):

var ajaxReq = new Ajax.Request('Test.jsp', {
     method: 'get',
     onSuccess: function(transport) {
       alert('OK');               
     },
     onFailure: function(transport) {
     	alert('Failure');
     }
});

Вроде бы банальнее некуда, при успешном запросе получаем «ОК», а если сервер выплюнет 404, 500 или что-то вроде этого, тогда «Failure». Все как положено. Однако, угадайте, как поведет себя этот код, если сервер недоступен (грохнулся, например)?
Читать дальше →

Как написать отличную статью и завоевать умы

Время на прочтение12 мин
Охват и читатели22K

Web 2.0, существование которого некоторыми отрицается, привел в интернет много авторов, которые стали писать статьи и заметки на самые разные темы. В зависимости от ресурса, вид, содержание, оформление и размер таких статей различаются, но у них есть один общий компонент — авторский текст, который, собственно, почти всегда, является сутью статьи. Такие статьи, в основном, пишутся не профессиональными журналистами, а простыми пользователями, которые в силу разных причин делятся своими мыслями, идеями или полученной информацией.

В данной статье мне хотелось бы предложить несколько вариантов того, как стоит создавать статьи, как их подавать и как поддерживать жизнь своей статьи.
Читать дальше →

Получаем персональный аттестат WebMoney

Время на прочтение1 мин
Охват и читатели1K
Все началось с того, что сервис WebMoney заблокировал два моих аккаунта. Заблокировал очень интересным способом — вводить деньги можно, а на вывод отвечает ошибкой :) После обращения в службу поддержки мне разъяснили причину блокировки и процедуру получения аттестата. На самом деле, все просто.

Для начала оформляем заявку на получение аттестата через passport.webmoney.ru. Потом распечатываем и заполняем форму заявления соискателя, делаем ксерокопию паспорта и приезжаем к регистратору (в Беларуси это Технобанк). Оплачиваем заявку (12.000 BYR = ~5,5 USD) и разговариваем с приятным регистраторам :) Через 20-30 минут ожидайте сообщения на внутреннюю почту WebMoney. Если все прошло без проблем, слева от вашей фамилии в терминале появится золотая иконка аттестата. Теперь вы авторизованный пользователь WebMoney и все сделки, которые будут совершены от вашего аккаунта, считаются совершенными именно вами и на это есть соответствующие документы.

Кстати, внимательно ознакомьтесь с заявлением соискателя. «Я признаю то, что совершенные действия с использованием ВМ — иднтификатора… могут быть использованы в качестве доказательств в судебных органах, при рассмотрении споров по гражданско-правовым сделкам, подтверждаю их действительность, юридическую и исковую силу».

Следующий шаг для восстановления старого аккаунта будет «Заявление об изменении регистрационных данных», которое придётся нотариально заверить и отправить в Центр аттестации, который находится в Москве (думаю, читатель догадался, почему мои аккаунт был заблокирвоан). Посмотрим как долго это будет длиться и что из этого выйдет.

Указывайте правильные данные при регистрации в WebMoney! :)

Сделай сам: любимые персонажи из бумаги

Время на прочтение2 мин
Охват и читатели4.4K
Привет всем Хабралюдям!
Сегодня я хочу поделиться с сообществом одним очень затягивающим и увлекательным способом убить свободное время и просто отвлечься.

Читать дальше →

Коллекции иконок? Легко! Тысячи иконок в сетах.

Время на прочтение2 мин
Охват и читатели39K
В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко.
Читать дальше →

Ресурсы по поиску качественных иконок.

Время на прочтение1 мин
Охват и читатели6.3K
Все когда-нибудь сталкивались с проблемой поиска качественных иконок для различных нужд. Список лучших поисковиков:
Читать дальше →

Поиск — это просто

Время на прочтение3 мин
Охват и читатели3.8K
Google, конечно, ищет хорошо, но корпоративные ресурсы вывешивать на открытый доступ нельзя, покупать google-mini с его ограничениями тоже не вариант. А поиск по базе внушительных размеров(4 гигабайта текстов, по которым и необходим поиск) надо. А если добаить к поиску по тексту еще и поиск по каким-то параметрам, то тут и google-mini не поможет и совсем страшно становится.

Но не стоит паниковать! На помощь нам приходит Sphinx — поисковый движок с открытым исходным кодом, который можно прикрутить практически к чему угодно не прилагая особых усилий

Читать дальше →

ONLYOFFICE. Голая правда об исходном коде облачного офиса

Время на прочтение6 мин
Охват и читатели18K

В начале июля Teamlab переименовался в ONLYOFFICE и полностью открыл исходный код своего приложения, включая онлайн редакторы документов, совместное редактирование, диаграмму Ганта и функционал выставления счетов.
За две недели мы получили массу вопросов на эту тему, поэтому на правах сотрудника компании возьмусь разъяснить, что к чему. Если у вас нет времени читать пост, просто скачайте инсталляцию ONLYOFFICE с Sourceforge. Разверните на своем сервере. Готово! У вас есть свой облачный офис. Вы великолепны.
Читать дальше →

Никогда не «не делай» того, о чем пожалеешь или умный дом с CCU.IO

Время на прочтение12 мин
Охват и читатели120K
На хабре последнее время появляется много статей об автоматизации дома. Какие-то статьи с пространными размышлениями на тему умного дома, не несущие полезной нагрузки. Какие-то с конкретной реализацией на конкретном проприетарном железе, но им не хватает чего то для того, что бы быть установленными или запущенными в другом доме.

Хочу представить программную платформу автоматизации для дома на базе Node.js, которую можно скачать со всеми исходниками и установить прямо сейчас практически одним кликом (Windows) или одной командой (Linux/Debian).


Подробности

Установка php5.5+php-fpm+mysql+nginx на Mac OS X Mavericks

Время на прочтение7 мин
Охват и читатели87K
Каждый веб-разработчик, выбравший Mac, после первичной настройки системы ищет рабочий инструментарий. И если c IDE и редакторами всё понятно, то что-либо подобное по удобству win-довым OpenServer или Denwer за бесплатно найти трудно. Есть отличное решение MAMP PRO, но оно стоит две тысячи деревянных. Да и работа через Apache некоторых может смутить.

Занимаясь решением этого вопроса, набрёл на интереснейший материал, который рассказывает о том, как при помощи консольного пакет-менеджера Homebrew настроить рабочее пространство буквально за 5-10 минут. Публикую его перевод, потому что кому-нибудь подобная инструкция по настройке веб-окружения на Mac обязательно пригодится.

Читать дальше →

Не все комментарии одинаково полезны

Время на прочтение7 мин
Охват и читатели34K
Все животные равны, но некоторые животные равнее других. Скотный Двор, Джордж Оруэлл (оригинал).

Достаточно много статей на хабре набирает существенное количество комментариев, e.g. в статьях "лучшее за месяц" их, как правило, более сотни. За годы чтения хабра, создалось впечатление, что примерно в половине случаев для комментариев первого уровня получается вот такая вот картина

(картинка сделана на основе хабра-статьи «Список скептика»).

Под катом рассказ, какие бывают сортировки комментариев, где они применяются и краткое рассуждение о том, как вообще можно сортировать комментарии (и зачем).
Читать дальше →

Как подружить капчу Yandex API и AJAX

Время на прочтение7 мин
Охват и читатели16K
Здравствуйте, уважаемые коллеги. Споры о том, нужна ли так называемая «капча», приносит ли она реальную пользу в деле борьбы со злобными роботами или только вредит «юзабилити» проекта давно утихли, и каждый, кто так или иначе интересовался этим вопросом сделал для себя соответствующие выводы.

Тем не менее, столкнувшись с необходимостью установить капчу в форму авторизации для очередного проекта, а так же после нескольких часов возни с сервисом reCaptcha, который генерирует на странице тонны мусорного кода, я так и не нашёл готового решения, которое бы устроило меня на сто процентов. Ну что же, если хочешь что-то сделать — сделай это сам.

В данной статье речь пойдёт о превращении простого и удобного API Яндекс — Чистый Веб в полноценную, современную и функциональную капчу. А раз уж мы заговорили о модуле авторизации, то думаю, что уместно будет показать — как наша новая капча работает в связке с модулем.
Читать дальше →

Ускоряем Nginx за 5 минут

Время на прочтение5 мин
Охват и читатели312K
image
Попытайтесь повторить это сами

Как правило, настроенный должным образом сервер Nginx на Linux, может обрабатывать 500,000 — 600,000 запросов в секунду. Но этот показатель можно весьма ощутимо увеличить. Хотел бы обратить внимание на тот факт, что настройки описанные ниже, применялись в тестовой среде и, возможно, для ваших боевых серверов они не подойдут.

Минутка банальности.

yum -y install nginx

На всякий пожарный, создадим бэкап исходного конфига.

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
vim /etc/nginx/nginx.conf

А теперь можно и похимичить!
Бдыжь-бдыжь

Ghost: Just a blogging platform

Время на прочтение1 мин
Охват и читатели21K
Доброго времени суток хабравчане. В одном из своих дайджестов я уже упоминал Ghost:
Насколько я знаю, это первая CMS, которая будет разработана силами краудфандинга. Автор проекта John O'Nolan собрал уже $400 000 на Kickstarter, что составляет 785% требуемой суммы. Ghost — это открытый проект, замечательный дизайн и очень удобный адаптивный интерфейс.

Разработчики несколько часов назад опубликовали репозиторий на GitHub

Рекомендую многоуважаемой аудитория Хабра посмотреть на проект даже только потому, что о нем написали в Forbes, Wired, TechCrunch, Mashable, SmashingMagazine, Envato и множество других популярных западных СМИ. А также 2000 старов за 10 часов.

Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность