Как стать автором
Обновить
2
0
brmn @brmn

Senior Cloud Application Developer

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

Очевидные 3 правила безопасности

Время на прочтение2 мин
Количество просмотров61K

Правило №1. Делайте все авторизационные куки HttpOnly


Куки с флагом HttpOnly не видны браузерному коду, а отправляются только на сервер. На практике у вас почти никогда нет необходимости получать их содержимое со стороны клиента (если такая необходимость почему-то у вас возникла — пересмотрите архитектуру авторизации, скорее всего, там что-то не так). А вот злоумышленнику, нашедшему XSS — а XSS так или иначе когда-нибудь где-нибудь найдется — отсутствие HttpOnly на авторизационных куках доставит много радости.

Читать дальше →
Всего голосов 173: ↑140 и ↓33+107
Комментарии117

Мой вариант .htaccess

Время на прочтение4 мин
Количество просмотров171K
В одном из предыдущих тематических постов о .htaccess для нубов я хотел предложить свой вариант с разными обработками и запретами, ну и определённой логикой структурирования, но так как карма была в минусе, то выкладываю сейчас.

Вашему вниманию мой вгляд на правила обработки URL с объяснениями и коментариями «почему так?».

Сперва логика


Объясню сперва логику:
1) все страницы имеют .html окончания.
2) все языки для страниц имеют вид pagename.en.html или pagename.html для языка по умолчанию. Никто, конечно, не запрещает иметь ссылки, где язык идёт вначале как /en/
3) «входной» скрипт только один в docroot.
4) Разрешены запросы на другие скрипты только в docroot
5) Соглашение по определению окончаний в url:
# site.com/
# site.com/index -> site.com/
# site.com -> site.com/
# site.com/file/ -> site.com/file.html
# site.com/file -> site.com/file.html
# site.com/dir/file ->site.com/dir/file.html
# site.com/dir/file/ -> site.com/dir/file.html
Но это можно менять.

Читать дальше →
Всего голосов 90: ↑57 и ↓33+24
Комментарии51

КЛАДР умер, да здравствует ФИАС?

Время на прочтение1 мин
Количество просмотров85K
Уважаемые коллеги, которые сталкивались с классификатором адресов Российской Федерации КЛАДР знают, насколько это странная база (в первую очередь своей структурой), а также большим количеством неточностей в самих данных.

В 2011 году за дело взялась ФНС, которая начала разрабатывать новую единую базу Федеральной информационной адресной системы (ФИАС) для того, что бы покончить с адресным бардаком, царящим среди различных ведомств.
Читать дальше →
Всего голосов 107: ↑103 и ↓4+99
Комментарии119

«Автопереключение раскладки» в php-приложениях

Время на прочтение4 мин
Количество просмотров184K
Доброго времени суток!

С недавнего времени я занимаюсь разработкой системы чатов, так сказать чаты 3.0. Данная идея пришла после того как познакомился с такой интересной и удобной штукой как comet-сервер Realplexor от dkLab. Но сейчас не об этом…

Основной движок написал, чат работает, пользователи общаются, все вроде бы ничего, но есть одно НО! Все же мы люди и бывает забываем переключить раскладку клавиатуры с английской на русскую, такое бывает. После написания n-го количества слов отправляем сообщение и что видим — написали не в той раскладке, и редко кому захочется заново переписывать этот текст, а читателям не всем захочется переводить Ваши каракули. И решено было придумать какой-нибудь очень простой способ исправления таких сообщений.
А теперь поподробней!
Всего голосов 17: ↑9 и ↓8+1
Комментарии24

Честная генерация DOCX файлов на PHP. Часть 2

Время на прочтение7 мин
Количество просмотров29K
image Здравствуйте, уважаемое хабрасообщество!
Продолжаем историю про генерацию DOCX средствами PHP.

Что нас ждет сегодня:
  • Мы узнаем, как вставлять изображения в документ;
  • Просветимся на счет English Metric Units;
  • Сделаем задел на будущую генерацию Exel.

Тем, кто не в курсе, рекомендуется прочитать первую часть. Ну а кто в теме – прошу под кат
Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии19

Tinyicon — счетчик в favicon на js

Время на прочтение1 мин
Количество просмотров4.1K
Tinyicon это небольшая библиотека для манипуляции с favicon сайта для передачи информации о новых событиях. Для браузеров не поддерживающих canvas счетчик отображается в title страницы.

image

Примеры и ссылки инсайд
Всего голосов 119: ↑113 и ↓6+107
Комментарии30

Как я делал самый популярный сайт о выборах

Время на прочтение10 мин
Количество просмотров15K
Статистика President2012.ru Друзья, я хочу вам рассказать историю развития проекта president2012.ru. Сайт является лидером по тематике выборов президента России, за 3 месяца его посетило около 2 млн. человек, в пике имел до 20 тыс. посетителей онлайн и более 1 млн. хитов в сутки, задействовано было 3 сервера облака.

Интересных моментов в процессе работы над проектом набралось столько, что держать в себе эти знания я не могу, и хочу поделится с вами. Я понимаю, что многое, о чем я сейчас собираюсь рассказать, уже описано качественнее в специализированных разделах, и ничего нового я не открою. Моя задача скорее в том, чтобы через отдельные нюансы передать ту атмосферу, в которой проходила работа над проектом. А так же в миллионный раз с помощью success story показать таким же как я людям, что всё возможно и всё в их руках.

Кому это может быть интересно? Всем, кто так или иначе занимается созданием тематичных веб-сайтов и рассчитывает работать с высоконагруженными проектами.
Читать дальше →
Всего голосов 274: ↑253 и ↓21+232
Комментарии214

Новый aggregation framework в MongoDB 2.1

Время на прочтение12 мин
Количество просмотров44K
В релизе 2.1 было заявлена реализация такой функциональности, как новый фреймворк агрегирования данных. Хотелось бы рассказать о первых впечатлениях от этой весьма интересной штуки. Данный функционал должен позволить в некоторых местах отказаться от Map/Reduce и написания кода на JavaScript в пользу достаточно простых конструкций, предназначенных для группировки полей почти как в SQL.

Читать дальше →
Всего голосов 65: ↑65 и ↓0+65
Комментарии16

Picasaweb API Авторизация. Получаем постоянный токен

Время на прочтение3 мин
Количество просмотров1.2K
Предлагаю вашему вниманию скрипт регистрации на вебсервисе picasaweb.
API этого вебсервиса — довольно мощный, и является хорошим помощником для фотографов и разработчиков.
На сегодняшний день есть масса различных библиотек для работы с API picasaweb. Но что делать, если мне нужно использовать лишь незначительную часть возможностей этого сервиса? Можно использовать существующие библиотеки (несмотря на их громоздкость), переделывать их под себя или написать свой велосипед. Я сторонник своих двухколесных решений.
Скрипт элементарен, но потребует подлючения библиотеки curl. Надеюсь, таковая у вас установлена и активирована, а иначе нам удачи не видать.
Читать дальше →
Всего голосов 14: ↑10 и ↓4+6
Комментарии0

Техническое задание на сайт

Время на прочтение11 мин
Количество просмотров698K
UPD: Продолжение статьи с примером техзадания

Не так давно на хабре были две статьи (Согласно техническому заданию и А зачем мне ТЗ? Я и так знаю!) посвященные техническим заданиям. У меня обе статьи вызвали, мягко говоря, недоумение, в особенности статья «Согласно техническому заданию». На мой взгляд, это вообще вредная статья, которая приводит к неверному понимаю сути ТЗ. В связи с этим хочу выразить свой взгляд на этот вопрос. Не буду говорить обо всех тех. заданиях, слишком широка тема, но думаю смогу рассказать о ТЗ на сайт.

То описание технического задания, о котором речь пойдет ниже, не является пересказом ГОСТа, но скорее является его творческой переработкой, хорошо сдобренной горьким опытом. Описанный ниже подход к ТЗ не охватывает все аспекты сайтостроения, но задает общее направление.

Большинство сайтов можно отнести к маленьким и очень маленьким проектам, масштаба единиц человеко-месяцев. В силу малости размеров такие проекты спокойно поддаются хорошему продумыванию и легко реализуются с помощью водопадной модели, достаточно просто не лениться на каждом этапе разработки (от написания ТЗ до сдачи проекта). Применять к этим проектам гибкие методологии разработки нет смысла, а как раз есть смысл применять хорошее ТЗ. К тем сайтам, которые не попадают под водопадную модель не стоит применять описанный ниже подход.

1. Обоснование необходимости ТЗ


А зачем вообще нужно ТЗ на сайт? Заказчик говорит: «Нужен следующий сайт: каталог товаров, корзина, форма заказа, доставка, мы на карте, о нас, обратная связь». Что не ясно? Ничего необычного, всё обыденно и рутинно.

Разработчик отчетливо представляет, что нужно сделать, а сделать, в его понимании нужно вот так:



Далее много букв
Всего голосов 212: ↑209 и ↓3+206
Комментарии141

Неназойливые регистрация и вход на сайт

Время на прочтение5 мин
Количество просмотров28K

Надоело отправлять пользователям подтверждения аккаунта и сброса пароля по утере на почту?
Пользователи уходят, устав заполнять вашу форму регистрации?
Вы точно уверены, что у посетителей вашего сайта есть аккаунт на Facebook или Вконтакте?
Не хотите хранить никакие персональные данные?
Ваши пользователи устали вводить логин и пароль?
Вашим пользователям лень даже нажать на кнопку «Войти»?
Видели, как это сделано на stackoverflow и хотите так же, и даже лучше?

Ниже о том, как сделать вход на ваш сайт ненавязчивым, автоматическим, и без особых затрат.
Читать дальше →
Всего голосов 64: ↑52 и ↓12+40
Комментарии71

Не SaaSом единым…

Время на прочтение2 мин
Количество просмотров4K
TeamLab в основном ассоциируется у пользователей с SaaS решением, в то время как на самом деле это не единственный доступный способ развертывания порталов. Если SaaS — это, прежде всего, удобство в использовании, то open source решение, доступное практически с самого момента основания проекта, — это более высокая степень независимости вас от нас, разработчиков продукта. Большинство владельцев порталов предпочитает SaaS, и именно поэтому все обновления в первую очередь касаются именно этой версии. Это в то же время не значит, что мы забываем и забиваем на любителей открытых кодов. Как раз сегодня мы хотим рассказать вам об обновлениях в open-source версии TeamLab.

Прежде всего, в 6.0 добавлены календарь и CRM, о чем с момента их выхода в SaaS нас очень просили многие пользователи. Таким образом все модули сервиса, за исключением онлайн редактора документов, доступны сейчас для самостоятельной установки. Кроме этого, на sourceforge выложен установочный пакет, позволяющий развернуть TeamLab на серверах Windows.


Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии4

Деобфускация PHP кода

Время на прочтение20 мин
Количество просмотров55K
Деобфускация PHP
Так уж случилось, что на днях мне попался один нужный PHP скрипт, но обфусцированный.
По какой-то причине он никак не работал. Я пишу на PHP достаточно давно, и мне очень нравится отлавливать нестандартные ситуации в скриптах, особенно когда при выполнении в логах нет ошибок, а скрипт просто не выполняет своих предназначенных обязанностей, руки так и чесались расшифровать. Последней каплей стало то, что автора этого скрипта не было в сети, чтобы помочь решить мою проблему. Скрипт кстати куплен моим товарищем, собственно он и попросил помочь.

Цель данной статьи, показать принцип дешифровки, зашифрованных скриптов, чтобы например расшифровать залитый злоумышленником вирус на PHP.

Читать дальше →
Всего голосов 120: ↑105 и ↓15+90
Комментарии34

Facebook Timeline

Время на прочтение4 мин
Количество просмотров8.6K
Facebook Timeline делает большую революцию в мире социальных сетей, придает новый вид для пользовательских профилей. Сегодня, посмотрим как просто можно реализовать этот проект с помощью jQuery и CSS.



Читать дальше →
Всего голосов 68: ↑60 и ↓8+52
Комментарии20

Альтернативный взгляд на плагин для маски ввода чисел и не только в input и textarea

Время на прочтение4 мин
Количество просмотров2.5K
Вдогонку к опубликованной раннее статье Плагин для маски ввода чисел в input, хотел бы поделиться своим взглядом на решение данной проблемы.

Подробности под Хаброкатом.

Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии7

Плагин для маски ввода чисел в input

Время на прочтение2 мин
Количество просмотров54K
Часто стоит задача, ограничить возможность ввода букв в поле input. Во многих источниках предлагают это сделать следующим способом, навесить обработчик события keyup, со следующим кодом:
return ((event.keyCode>47)&&(event.keyCode<58))

Этот метод обладает рядом недостатков, к примеру также пользователь не сможет вводить цифры numpad, в опере не будут работать клавиши tab,up,left и т. д.
Как же сделать правильно?
Читать дальше →
Всего голосов 31: ↑22 и ↓9+13
Комментарии22

Как я узнал, что у нас сливают трафик

Время на прочтение5 мин
Количество просмотров13K
Приветствую Вас уважаемое хабра-сообщество. Хочу поведать Вам о том, как сливали трафик у одного из моих клиентов.
Сидел я поздним вечером, и решил пройтись по сайтам клиентов, и на одном из них, я увидел, что чуть-чуть сместился один div.
Посмотрев исходный код и пролистав его туда-сюда раз 10, я увидел, что скрипт подгружается с интересного домена:

Трудно заметить, что последний подключаемый скрипт ведет на goog1(цифра)e-analitics.com
Читать дальше →
Всего голосов 167: ↑154 и ↓13+141
Комментарии85

Настройка и создание приложения для публикации в Facebook timeline

Время на прочтение10 мин
Количество просмотров21K
В данной статье я хочу описать, как создать минимальное приложение, которое что-то опубликует в timeline, а так же рассказать про трудности, которые могут возникнуть на этом пути.
Прежде всего, стоит сказать, что в данный момент facebook timeline находится в beta и доступна только разработчикам, поэтому первое, что необходимо сделать, это активировать timeline для своего аккаунта. На эту тему написано множество инструкций, вот например www.makeuseof.com/tag/enable-facebooks-timeline-profile.
После выполнения всех действий из инструкции, и подождав несколько минут, кликните по своему имени, вместо стены должен открыться долгожданный timeline.

Шаг 1. Настраиваем facebook приложение


Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Комментарии2

PHP MongoDB ORM

Время на прочтение2 мин
Количество просмотров12K
php+mongo
MongoDB — документо-ориентированная система управления базами данных хранящая данные в виде наборов JSON-подобных документов. Для работы с MondoDB в PHP используется pecl расширение mongo, позволяющее полноценно работать с СУБД используя объекты доступа.
В статье пойдет речь об ORM (Object-relational mapping) standalone библиотеках и фреймворках позволяющих упростить использование Mongo в PHP проектах и предоставляющих интерфейс к работе с данными.
Читать дальше →
Всего голосов 34: ↑23 и ↓11+12
Комментарии15

О регистрации на сайтах

Время на прочтение6 мин
Количество просмотров77K
Мы часто выполняем на многих сайтах действие, которое постоянно эволюционирует и улучшается (а иногда наоборот). Это регистрация. Именно о разных способах и особенностях регистраций на сайтах я бы хотел с вами поговорить. Это не громоздкое исследование, а просто небольшие и (надеюсь) полезные выдержки из моего опыта дизайнера интерфейсов.


Пример удачной регистрации на сайте Tumblr.

Начну с определения самого понятия «регистрация», с ним всё не так просто, как может казаться. В результате полевых исследований нашей компании оказалось, что разные люди (клиенты, посетители и мы сами) нередко воспринимают это слово по-разному. Для того, чтобы избежать непонимания, опишу то, как я сам вижу регистрацию.
Читать дальше →
Всего голосов 166: ↑144 и ↓22+122
Комментарии97

Информация

В рейтинге
Не участвует
Откуда
München, Bayern, Германия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Software Architect
Lead
От 10 000 €
AWS
Python
TypeScript