Search
Write a publication
Pull to refresh
3
0

Руковожу разработкой всякого разного

Send message

Тестирование безопасности клиент-серверного API

Reading time6 min
Views41K
2 года назад я выступал на конференции CodeFest с темой «Пентест на стероидах. Автоматизируем процесс» и делал пересказ выступления в качестве статьи. В этом году я с большим удовольствием снова принял участие в конференции и выступил с темой «BlackBox тестирование безопасности клиент-серверного API» и, видимо уже в качестве традиции, также делаю пересказ выступления.



Уязвимости в API встречаются. Правда.

О чем разговор?


Разговор про API, но API бывает разным — API операционной системы, сайта, десктопной программы, да хоть чего. Вкратце — API это обращение к методам чего-либо (например в случае ОС — запись в файл) через определенный метод. И запуск какого-нибудь файла с т.ч. зрения разработки произойдет схожим образом (тоже через API метод ОС), хотя результат выполнения команды совершенно разный. В веб-технологиях многие тоже реализуют API к своим проектам, и если на пальцах: можно отправить сообщение в соц. сети зайдя на сайт, а можно — сформировав специальный HTTP запрос. И при реализации подобного альтернативного использования функционала допускаются (как и везде) ошибки в безопасности. Статья как раз о специфичных ошибках при реализации подобного функционала в веб-проектах.
Читать дальше →

Дружим Git с Putty

Reading time2 min
Views53K
Disclaimer
Предварительно делал поиск по хабру с надеждой на подобный пост, смог найти только вот этот пост, в котором вся работа производятся через TortoiseGit.

Но это не наш метод. По той причине, что в этом случае все наши IDE не смогут сами сделать Push на сервер. Да и через Git Bash ничего не получится сделать на сервере.
почему мне нужно использовать Git в связке с Putty?
Так уж получилось, что я активно использую Putty с настроенными ключами для доступа к серверам. Ключей у меня не один. Git-репозитариев тоже не один.
Конечно же, можно нагенерить OpenSSH ключей для Git-а и разрулить их через ~/.ssh/config, но это получается двойная работа – поддержка ключей в Putty и отдельная поддержка для Git.



Итак, представим, что у нас девственно чистая система, в которой нет ни Putty, ни msysgit. Приступим к настройке нашего рабочего окружения.

Установка Putty


Качаем, устанавливаем, генерим и настраиваем ключ c Pagent (инструкция, ?).

Добавляем ключ на git-сервер


Копируем публичный OpenSSH ключ из Putty-ключа
Запускаем Putty key Generator
Открываем (кнопка «Load») наш PPK-ключ
Копируем весь текст из блока «Key»

Открываем страницу с SSH ключами и добавляем из буфера наш ключ
В картинках (на примере GitHub)






Создаём и сохраняем в Putty профиль «git@github.com» и проверяем, что удаётся зайти по ключу – должна открыться и сразу закрыться консоль.
В картинках





Устанавливаем и настраиваем msysgit

Дайте весь текст!

Эдвард Сноуден на TED: Как нам вернуть Интернет (озвучка)

Reading time2 min
Views96K
Совсем недавно в рамках конференции TED состоялось необычное мероприятие — лекцию читал человек, находившийся в другой стране.
При этом он спокойно перемещался по сцене, осматривал аудиторию и даже «пожимал» руку ведущему.
Каким образом? Объяснение (а также саму лекцию на русском языке) вы найдёте под катом.


Проглотить синюю таблетку

Учимся бороться с ëÒÁËÏÚÑÂÒÙ

Reading time1 min
Views32K
Недавно у меня возникла потребность скачивать кучу всяких документов из веба. Естественно не ручками, а питонячими скриптами. Но вот беда — довольно часто странички содержат кракозябры какую-то хрень.

image

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

Всплывающие метки в формах на чистом CSS

Reading time3 min
Views42K
Возможно, вам уже попадался на глаза этот приём. Это поле ввода, которое выглядит так, как будто в нем есть текстовая подсказка (placeholder), но при начале набора текста она не исчезает, а отодвигается в сторону. Мне нравится эта идея. Брэд Фрост написал очень хорошую статью об этом приёме, подробно рассмотрев все «за» и «против».

Большинство примеров использования этой техники полагаются на JavaScript. В один прекрасный день я зашёл на nest.com, увидел там этот приём и задумался: а нельзя ли реализовать то же самое без JavaScript? И вот что из этого вышло.

Вот так выглядит форма на nest.com:

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

HTML по стандартам

Reading time10 min
Views125K
Привет Хабр!

image Изначально хотел назвать статью «HTML по ГОСТ`у», но потом выяснилось что у большинства программистов не было предмета «Метрология и стандартизация» и о «стандартизации», «сертификации», «унификации» не все слышали.

В i-Free я много занимаюсь разработкой веб-приложений. А поскольку их много, они разные и работают в разных условиях, то само собой приходится задумываться о стандартизации. Есть такой проект «Пуленепробиваемый HTML5» (http://html5boilerplate.com/), в котором разработчики решили создать идеальный шаблон странички. Он мне очень нравился, и все свои проекты я начинал именно с него. Но, исправляя баг за багом, делая все новые и новые приложения, я пришел к выводу, что многого в нем не хватает. В этой статье я хотел бы рассказать о том, что обычно пропускают при написание страничек и веб-приложений и показать, чем и зачем я прокачал свой шаблон пустой странички.
Читать дальше →

bb-mobile VOIIS GPS: телефон с большими кнопками, контролем здоровья и удаленным управлением

Reading time6 min
Views20K
Лично мне никогда особо не нравилась классическая концепция «бабушкофона», получившая определенное распространение на российском рынке. Да, у таких аппаратов большие кнопки и крупные шрифты, что хорошо. А вот все остальные функции в них, кажется, реализуются для галочки. Радио без гарнитуры? Да, оно работает. Но встроенная в корпус антенна настолько слаба, что толком принимать FM-сигнал она не может, и поэтому вместо музыки из динамика доносится в основном шуршание.

SOS-функциональность? Да, телефон может звонить и отправлять СМС на заданные тревожные номера по нажатию на соответствующую кнопку (обычно она находится сзади). Но дальше-то что? Человек узнает, что с его пожилым родственником что-то случилось. Но и только: где он, что он – далеко не факт, что вся эта важнейшая информация дойдет до получателя. Потому что этот самый пожилой родственник должен передать ее «адресату» голосом, а если у него, например, случился инсульт, то сделать он этого наверняка не сможет. Все это напоминает мою школу, где к началу одного учебного года в кабинете физики установили краны на каждой парте. Типа для экспериментов. Но трубы к ним подвести «забыли», и в течение следующих трех лет учебы этими кранами мы не воспользовались ни разу. То же самое и с «бабушкофонами»: начинание здравое и правильное, но для победного конца его почему-то не доводят.

Ниже я расскажу о телефоне bb-mobile VOIIS GPS, в котором все как раз сделано как надо. И я бы не стал называть его «бабушкофоном» в привычном понимании – ему лучше подходит определение «медфон», так как он среди прочего позволяет удаленно контролировать параметры состояния здоровья пользователя. Это может пригодиться не только пожилому человеку, но и, например, ребенку. Я вот, помнится, в 12 лет поехал в детский «оздоровительный» лагерь. Слово «оздоровительный» я сознательно взял в кавычки, так как из-за дикой антисанитарии и плохого питания я «поймал» там какой-то интересный вирус, приведший к высокой температуре и проблемам с желудком. Градусник мне заботливые родители дали с собой, и я даже пару раз использовал его по назначению. Но в 12 лет не задумываешься о том, что 38 градусов – это как-то слишком много. Главное – солнце, море, песок… Вот я и заболел тогда хорошенько. А был бы у меня в кармане bb-mobile VOIIS GPS, а в голове – правильный инструктаж от родителей, то они бы, узнав о проблемах с температурой, забрали меня бы из этого заведения в течение считанных часов.


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

Краткая инструкция по работе с web-дизайнером (для менеджера проекта)

Reading time5 min
Views55K


В статье будут даны рекомендации по работе с WEB-дизайнерами. Исполнение этих рекомендаций даст значительное повышение качества работы, увеличение производительности труда и сохранит нервные клетки.

В каждом из пунктов будут живые примеры и ссылки на полезные, бесплатные инструменты.

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

Создание своего банка, или Как обеспечить себе безбедную старость

Reading time15 min
Views354K
Наблюдая за своими родителями-пенсионерами, а точнее за размерами их пенсий, я крепко задумываюсь о том, как обеспечить себе нечто оное в достойном меня размере. На государство в составе СНГ рассчитывать, похоже, не приходится. Значит, надо что-то делать самому! И начинать надо сейчас, пока мне 32 года, есть какой-никакой заработок и силы крутиться. Раньше были мысли, что я буду вечно молодым, вечно здоровым и все время что-то делать. Постепенно начинаю осознавать, что лет 20… 30 — и силы будут таять (или распыляться). Поэтому пару лет назад я начал понемногу что-то делать в этом направлении. Получил некоторый опыт, который может быть интересен уважаемому сообществу. Даже если для читателя вопрос пенсии сейчас звучит безумно абстрактно, то все равно рекомендую хотя бы пробежаться. Если бы я 5 лет назад почитал такой материал — я был бы уже существенно богаче!..
UPD: в статье добавил про смысл диверсификации, а то в комментариях много вопросов было…
В общем, рекомендую!

Nanex: кошмар на улице Вязов для скоростных торгов. Часть 1

Reading time3 min
Views32K
image

Немезида всех высокочастотных трейдеров с Wall Street работает в офисе размером с квартиру, расположенном прямо над салоном Bliss, где за $45 делают маникюр и педикюр – на улице Вязов в деревне Уиннетка, что недалеко от Чикаго.

Перед Эриком Скоттом Хунсадером (Eric Scott Hunsader), основателем Nanex LLC, провайдера данных по фондовым рынкам, целых четыре монитора, демонстрирующие психоделические изображения прыгающих треугольников и точек, в которых он высматривает признаки незаконных торгов. Треугольники и точки на его мониторах – это выходящие со скоростью в доли секунды котировки на продажу и покупку акций на фондовых биржах США.
Читать дальше →

Nanex: кошмар на улице Вязов для скоростных торгов, часть 4

Reading time4 min
Views12K
[Первая часть, вторая часть, третья часть

YouTube


Чтобы проиллюстрировать процесс ведения компьютеризированных торгов неискушенной публике, Nanex начал преобразовывать трейдинговую информацию в анимированные видеоролики с треугольниками и точками, показывающими десятки тысяч команд, стремительно перемещающихся между биржами. Один видеоролик, опубликованный на YouTube, демонстрировал отрезок в 50 миллисекунд, во время которого цена на котировки Nokia Ovi менялась со скоростью 22 000 раз в секунду. Видео, опубликованное 9 октября, уже просмотрели больше 6 400 раз [на момент перевода статьи число просмотров превысило 10 300 – прим. переводчика].

image

В Nanex компьютер запрограммировали воспроизводить ту или иную ноту на фортепиано, когда акции одной известной на биржах компании покупались и продавались. В результате программа выдала композицию стаккато, звучащую довольно дико даже если проигрывать ее в медленном темпе. Она должна была проиллюстрировать то, что Хунсадер назвал абсурдностью современного «компьютерного» трейдинга.
Читать дальше →

Объясняем бизнесу, почему у нас такие «фиговые» оценки

Reading time3 min
Views36K
Далеко не все владельцы бизнеса, менеджеры продуктов и менеджеры по продажам, связанные с разработкой ПО, пришли на свою позицию из программистов. Этот пост в основном для них. Но, возможно, он будет полезен и разработчикам ПО, которым постоянно приходится отвечать им на два стандартных вопроса:

Почему ты не можешь дать точную оценку трудоемкости разработки?
Почему ты не можешь завершить все работы в два раза быстрее?

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

Деревья принятия решений на JavaScript

Reading time4 min
Views33K
В качестве практического приложения к предыдущей статье, хочу предоставить крошечную JavaScript библиотеку для построения деревьев и леса принятия решений.

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

А вы тоже ищете зависимости в SQL вручную? Тогда мы идем к вам! SQL Dynamite, поиск по объектам базы

Reading time2 min
Views26K
Привет, уважаемые Хабро-читатели и SQL-писатели. Команда ХостТрекера хочет поделиться полезной утилитой для SQL разработчиков и администраторов.

Какую задачу решаем?


Нахождение зависимостей объектов в БД.
Поиск по строке в метаданных БД (хранимых процедурах, View, пользовательских функциях, определениях таблиц, индексах, ключах)


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

Как инфраструктура Яндекс.Почты выросла за 13 лет

Reading time11 min
Views50K
Во втором десятилетии XXI века почта — это не только переписка между людьми. Пользователи ожидают, что почта будет помогать им решать ежедневные задачи, экономить время, подсказывать недостающую информацию. Мы постоянно добавляем в Яндекс.Почту новые штрихи, которые делают жизнь пользователей немного проще. Сегодня мы бы хотели вместе с вами заново пройти тот путь, который Яндекс.Почта проделала за 13 лет, уделяя особое внимание развитию архитектуры и инфраструктуры сервиса.



Сейчас мало кто помнит, что самая первая версия Яндекс.Почты была написана на PHP, а письма хранились прямо в реляционной БД рядом с мета-информацией. В том не таком уж и далёком 2000 году весь почтовый сервис умещался на десятке серверов. Сами сервера обслуживались полностью в ручном режиме: от конфигурации дисков до установки операционной системы, никакой автоматизации не было.
Вспомним начало нулевых

Список литературы для менеджера продукта 80 уровня

Reading time4 min
Views124K
Менеджер продукта – все еще редкий зверь в российских и украинских IT компаниях. И если внутри команд, где менеджер продукта существует, его роль вопросов не вызывает (если он, конечно, занимается делом), то знакомые в других компаниях, на конференциях, друзья, от разработчиков до менеджеров проектов задают массу любопытствующих вопросов. Вопросы очень разномастные – от того, о чем собственно работа, и как устроен процесс работы над продуктом в нашей команде, до того, где поучиться, что почитать, и где вообще берут на работу продакт менеджеров.

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

Сразу хочу сказать, что все книги на английском. Часть из них можно найти на русском, но без английского на уровне чтения и прослушивания подкастов будет тяжко – на русский клевые вещи об управлении продуктами переводят медленно и нехотя. Второй момент – чтение книг из этого списка не сделает из вас менеджера продукта. Как и книжка С++ за 21 день не сделает из вас С++ разработчика. Просто уровень вхождения в окологуманитарные профессии пониже, и это иногда создает напрасные иллюзии.

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

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

Objective-D — альтернатива или дополнение к Objective-C

Reading time5 min
Views20K
Objective-C, по-моему мнению, — не очень удобный язык со множеством проблем. Но мы вынуждены писать приложения под iOS на этом языке. Я разработал другой язык, который генерирует код Objective-C. Поэтому в этом языке вы можете легко использовать классы Objective-C и C функции. Вы также легко можете использовать сгенерированные классы в коде Objective-C. Так что есть возможность вести разработку сразу на двух языках. Я назвал этот язык Objective-D.
Читать дальше →

Почему существует так много Питонов?

Reading time9 min
Views141K
Питон изумителен.

Удивительно, но это довольно неоднозначное заявление. Что я имею ввиду под “Питоном”? Может, абстрактный интерфейс Питона? Или CPython, распространенная реализация Питона (не путать с похожим по названию Cython)? Или я имею ввиду что-то совсем иное? Может, я косвенно ссылаюсь на Jython, или IronPython, или PyPy. Или может я отвлекся так сильно, что говорю о RPython или RubyPython (которые очень сильно отличаются).

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

При работе с Питоном я столкнулся с кучей таких технологий. Инструменты *ython. Но лишь недавно я уделил время, чтобы разобраться, что они собой представляют, как они работают и почему они (каждая по-своему) необходимы.

В этом посте я начну с нуля и пройдусь по разным реализациям Питона, а закончу подробным введением в PyPy, за которым, по моему мнению, будущее языка.

Все начинается с понимания того, чем на самом деле является “Питон”.
Читать дальше →

Интервью с Сидом Мейером: Ace Patrol, эволюция Civ и будущее стратегических игр

Reading time6 min
Views36K
Сид Мейер — легенда игрового дизайна. Он был одним из основателей MicroProse в 1982 и создал Civilization, одну из самых долгоживущих и любимых игровых серий. Будучи творческим директором Firaxis и куратором серий Civ и XCOM Мейер может быть привередливым в выборе работы. Его выбор: Ace Patrol, пошаговая, вдохновленная настольными играми стратегия на тему первой мировой войны, с низкой ценой и глубокими стратегическими возможностями. PC Gamer обсудил с Мейером о его интерес к маленьким играм и то, как они дали его команде возможность немного рискнуть. Так же он поделился своим мнением о меняющемся рынке стратегических игр, ведь по его мнению все игроки в глубине души являются любителями стратегий.

PC Gamer: как вы пришли к Ace Patrol?

Сид Мейер: Это была возможность сделать игру за более короткий промежуток времени и с меньшей командой. Как мне кажется, последней игрой, которую я действительно закончил, была Civ Revolutions. Мы сделали несколько крупных игр, Civ и XCOM, они великолепны, но при работе над ними мне очень захотелось поработать в маленькой команде и создать игру за меньший промежуток времени. С низким бюджетом у вас больше возможностей сделать что-то более рискованное. Разработка для iPad тоже была интересным, новым вызовом — новый тип устройств, новый интерфейс. У меня была идея пошаговой авиационной игры о первой мировой войне. Изначально я представлял ее себе карточной. В начале работы над версией для iPad у нас были виртуальные карты и все в таком духе. Я довольно долго обдумывал идею этой игры.


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

Пару слов о распознавании образов

Reading time13 min
Views314K
Давно хотел написать общую статью, содержащую в себе самые основы Image Recognition, некий гайд по базовым методам, рассказывающий, когда их применять, какие задачи они решают, что возможно сделать вечером на коленке, а о чём лучше и не думать, не имея команды человек в 20.
image

Какие-то статьи по Optical Recognition я пишу давненько, так что пару раз в месяц мне пишут различные люди с вопросами по этой тематике. Иногда создаётся ощущение, что живёшь с ними в разных мирах. С одной стороны понимаешь, что человек скорее всего профессионал в смежной теме, но в методах оптического распознавания знает очень мало. И самое обидное, что он пытается применить метод из близрасположенной области знаний, который логичен, но в Image Recognition полностью не работает, но не понимает этого и сильно обижается, если ему начать рассказывать что-нибудь с самых основ. А учитывая, что рассказывать с основ — много времени, которого часто нет, становится всё ещё печальнее.
Распознать

Information

Rating
Does not participate
Location
Россия
Registered
Activity