Search
Write a publication
Pull to refresh
9
0
ahaidukov @ahaidukov

User

Send message

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

Reading time1 min
Views1.4K
Задача: сделать достаточно защищенный механизм аутентификации на 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. Все потому, что никто не гарантирует статичность порта на всю сессию, а это повлечет постоянные ре-логины, что пользователь просто не моймёт.

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

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

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

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

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

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

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

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

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

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

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

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

Reading time6 min
Views19K
Статья предназначена тем, кто уже знаком с Apache Rewrite module и пусть не всегда, но использует его в своей нелегкой жизни. Вопрос рассматривается в контексте использования PHP как серверного скриптового языка.

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

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

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

Reading time2 min
Views760
Работая над проектом, наш разработчик столкнулся с одной особенностью 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». Все как положено. Однако, угадайте, как поведет себя этот код, если сервер недоступен (грохнулся, например)?
Читать дальше →

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

Reading time12 min
Views20K

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

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

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

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

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

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

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

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

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

Reading time2 min
Views4K
Привет всем Хабралюдям!
Сегодня я хочу поделиться с сообществом одним очень затягивающим и увлекательным способом убить свободное время и просто отвлечься.

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

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

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

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

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

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

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

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

Reading time6 min
Views17K

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

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

Reading time12 min
Views119K
На хабре последнее время появляется много статей об автоматизации дома. Какие-то статьи с пространными размышлениями на тему умного дома, не несущие полезной нагрузки. Какие-то с конкретной реализацией на конкретном проприетарном железе, но им не хватает чего то для того, что бы быть установленными или запущенными в другом доме.

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


Подробности

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

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

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

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

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

Reading time7 min
Views34K
Все животные равны, но некоторые животные равнее других. Скотный Двор, Джордж Оруэлл (оригинал).

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

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

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

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

Reading time7 min
Views16K
Здравствуйте, уважаемые коллеги. Споры о том, нужна ли так называемая «капча», приносит ли она реальную пользу в деле борьбы со злобными роботами или только вредит «юзабилити» проекта давно утихли, и каждый, кто так или иначе интересовался этим вопросом сделал для себя соответствующие выводы.

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

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

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

Reading time5 min
Views298K
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

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

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

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

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

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity