Pull to refresh
21
0
Евгений Аверин @Webnode

User

Send message

SpiderTest: автотесты своими руками

Reading time7 min
Views34K


Довольно часто среди начинающих (и даже не очень) тестировщиков приходится слышать: «вот если бы я умел писать автотесты, я бы…». Как правило этим «если бы» ребята и ограничиваются. На вопрос: «А почему не учишься писать?» чаще всего отвечают: «Программирование это не мое». Действительно, тем для кого программирование темный лес, погрузиться в мир автотестов довольно затруднительно, ведь скрипт сам себя не напишет. В этой статье я хотел бы поговорить о том, как из ручного тестировщика стать крутым автотестером.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments32

ipgeobase в Nginx

Reading time3 min
Views18K
Когда возникает задача — по адресу посетителя получать его город и налоговый (автомобильный) код региона, кажется — да это же просто, в инете полно таких штук!
А потом смотришь: одни платные, другие нельзя у себя развернуть, третьи можно, но это ресурсозатратно, четвертые о регионах РФ ничего не знают…
И тут на помощь спешит больной мозг программиста с навязчивой идеей: «Нет у других — сделай сам»

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments9

Партизанская война Instagram с порнографией и пользователями, которые входят в окна, когда перед ними закрывают двери (Часть 1)

Reading time8 min
Views45K


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

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

Я предложила столу весьма резонное объяснение: часть Instagram переросла в процветающее сообщество по обмену фото с «обнажёнкой», которое умудряется цвести и пахнуть, несмотря на все самоотверженные попытки компании избавиться от всех блуждающих по просторам сервиса частей тел. О, ради всего святого, да неужели они не слышали о «Баклажанных Пятницах» (Eggplant Fridays), когда пользователи делятся фото своих фаллосов?
Читать дальше →
Total votes 15: ↑11 and ↓4+7
Comments12

PostgreSQL: Приемы на продакшене

Reading time9 min
Views90K
Можно прочитать много книг по базам данных, написать кучу приложений на аутсорс или для себя. Но при этом невозможно не наступить на грабли, при работе с действительно большими базами/таблицами особенно, когда downtime на большом проекте хочется свести к минимуму, а еще лучше совсем избежать. Вот здесь самые простые операции, как например изменение структуры таблицы может стать более сложной задачей. Наиболее интересные случаи, проблемы, грабли и их решения из личного опыта с которыми нам на проекте Pushwoosh пришлось столкнуться описаны под катом. В статье нет красивых картинок, зато есть много сухого текста.

image
Читать дальше →
Total votes 75: ↑70 and ↓5+65
Comments18

3 юридические ошибки Интернет-магазина

Reading time4 min
Views45K
В результате использования стандартного набора документов «как у всех» копируются и юридические ошибки. Обзор стандартных документов на сайтах Интернет-магазинов показывает, что их владельцы часто не задумываются над функцией, которую такие документы могут и должны выполнять.

Мы проанализировали практику привлечения Интернет-магазинов к ответственности за нарушения законодательства и выявили 3 основных ошибки, которые не сложно устранить при наличии желания. Итак, чем грозит использование решений, интегрированных в шаблон сайта Интернет-магазина и как с этим бороться, смотрите ниже.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments14

Умный дом или игрушка для мужчин

Reading time4 min
Views30K
Начать статью про умный дом хочется с определения из Википедии. Но это вы и сами знаете можете почитать. Хочется сказать, что система умный дом позволяет экономить деньги. Но и это уже не так, с нашим-то рублем. Ну, тогда уж точно приходишь к выводу, что умный дом — это комфорт.

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



Температура за бортом в течение недели прыгает от -10С до +1С. В доме, в зависимости от типа обогревателя отклонения от заданных температур находятся в диапазоне от 0,03С до 0,2С.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments31

Как мы за 24 часа построили конструктор Telegram-ботов, а потом половину выкинули и переписали

Reading time9 min
Views43K
Все началось 20.06, когда я увидел в твиттере популярного блогера Варламов этот твит:

image
В тот же момент я подумал: ведь мессенджер вообще и Telegram в частности это идеальный способ взаимодействия с клиентом. Зачем нам приложение, чтобы доставлять последние новости если это можно просто прислать их в чат?

Зачем вам приложение для заказа такси, когда вы можете написать в чат любимому оператору такси «хочу такси в Домодедово от м. Южное через 35 минут» — и такси заказано. Зачем вам приложение для заказа из кафе, когда можно написать в чат «хочу двойной эспрессо и бейгл с осетром» — и осталось только послать свой адрес. Таких примеров использования чата может быть огромное множество.

В тот же день я написал небольшой пост в клубном новостном сообществе TJournal, где предложил в рамках предстоящего хакатона AngelHack написать продукт и создать демонстрационного бота: для подписки на новости и уведомления из этого сообщества. Через четыре дня Павел Дуров официально запустил поддержку ботов, а еще через две недели мы победили на AngelHack в номинации от IBM с проектом Leecero. Под катом большая история…


Читать дальше →
Total votes 40: ↑27 and ↓13+14
Comments17

Немного о защите идентификаторов веб-сессий

Reading time8 min
Views17K
Предлагаем вашему вниманию перевод статьи из блога Eran Hammer — создателя фреймворка hapi.js. На этот раз речь пойдет об обеспечении безопасности идентификаторов сессий.



На Github прозвучал вопрос о том, зачем в Node.js-фреймворке Express к идентификационной cookie сессии добавляется хэш-суффикс? Отличный вопрос.

Но сначала небольшой дисклеймер: как и любой другой совет по безопасности от человека, не знакомого со спецификой конкретной системы, рассматривать все, что будет написано ниже, следует лишь с образовательной точки зрения. Безопасность — это сложная и крайне специфичная область знаний, поэтому, если обеспечение должного уровня защиты критически важно для конкретной компании, ей следует нанять выделенного ИБ-специалиста или обратиться к услугам профессионалов по защите информации.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments10

Собираем базу людей из открытых данных WhatsApp и VK

Reading time15 min
Views219K
Etan Hunt
кадр из фильма Миссия Невыполнима II

Эта история началась пару месяцев назад, в первый день рождения моего сына. На мой телефон пришло СМС-сообщение с поздравлением и пожеланиями от неизвестного номера. Думаю, если бы это был мой день рождения мне бы хватило наглости отправить в ответ, не совсем культурное, по моему мнению, «Спасибо, а Вы кто?». Однако день рождения не мой, а узнать кто передаёт поздравления было интересно.

Первый успех


Было решено попробовать следующий вариант:
  • Добавить неизвестный номер в адресную книгу телефона;
  • Зайти по очереди в приложения, привязанные к номеру (Viber, WhatsApp);
  • Открыть новый чат с вновь созданным контактом и по фотографии определить отправителя.

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

Сразу же за секундным промежутком эйфории от удачного поиска в голове появилась идея перебором по списку номеров мобильных операторов составить базу [номер_телефона => фото]. А еще через секунду идея пропустить эти фотографии через систему распознавания лиц и связать с другими открытыми данными, например, фотографиями из социальных сетей.
Далее перебор аккаунтов WhatsApp и VK по Москве и Ненецкому АО и распознание лиц
Total votes 128: ↑127 and ↓1+126
Comments34

Превращаем бытовой роутер в хак-станцию

Reading time3 min
Views75K
Решил написать статью о своём опыте превращения бытового роутера в хак-станцию.
Атака на WPS иногда занимает более 10 часов. Чем же брутить? Выбор не большой:
PC – совместимые железяки
Android – устройства
— Специализированные девайсы вроде WiFi Pineapple
Встала задача брутить на работе, оставлять ноутбук не хотелось. Решил попробовать Android смартфоном. Выяснилось, что, режим монитора в драйвере Wi-Fi отказывается корректно работать. Свою задачу, осуществил роутером.

Выбор беспроводного роутера

Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments6

Эффективное изменение размера картинок при помощи ImageMagick

Reading time12 min
Views88K
В наше время всё чаще сайты сталкиваются с необходимостью введения отзывчивого дизайна и отзывчивых картинок – а в связи с этим есть необходимость эффективного изменения размера всех картинок. Система должна работать так, чтобы каждому пользователю по запросу отправлялась картинка нужного размера – маленькие для пользователей с небольшими экранами, большие – для больших экранов.

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

Множество инструментов занимается изменением размера, но слишком часто они выдают большие файлы, аннулирующие выигрыш в быстродействии, который должен приходить вместе с отзывчивыми картинками. Давайте рассмотрим, как при помощи ImageMagick, инструмента командной строки, быстренько изменять размеры картинок, сохраняя превосходное качество и получая файлы небольших объёмов.

Большие картинки == большие проблемы


Средняя веб-страница весит 2 Мб, из них 2/3 – картинки. Миллионы людей ходят в интернет через 3G, или ещё хуже. 2Мб-сайты в этих случаях работают ужасно. Даже на быстром соединении такие сайты могут израсходовать лимиты трафика. Работа веб-дизайнеров и разработчиков – упростить и улучшить жизнь пользователя.

image

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

ImageMagick


Утилита командной строки с 25-летним стажем в то же время является редактором картинок с полным набором функций. В ней огромная куча функций, и среди них – быстрое и автоматическое изменение размера картинок. Но с настройками по умолчанию файлы часто получаются излишне большими – иногда по объёму больше оригинала, хотя в них и меньше пикселей. Сейчас я объясню, в чём проблема, и покажу, какие настройки необходимы для её решения.
Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments11

Всегда на связи или Как путешествовать, не отключаясь от сети

Reading time4 min
Views14K
Бывает, что в поездке необходимо срочно ответить на письмо или переслать результаты работы заказчику, но в это время вы ждете посадки в самолет, пережидаете стыковку или провожаете товарища в отпуск. Где взять интернет для связи и розетки? Попробуем разобраться.


Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments44

Очередной умный дом, в трех частях. Часть третья, пользовательско-интерфейсная

Reading time4 min
Views46K
Итак, подошло время рассказать и показать как это все управляется. Как я уже говорил во второй части, после нескольких итераций — все остановилось на HTML + JS. Писать отдельное приложение под Android я не планировал, но жизнь, как обычно, внесла некоторые коррективы.

Ссылки на первые две части:

image
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments13

Гроза, молния и средства защиты электросети своими силами

Reading time8 min
Views172K
По итогам майских гроз пришлось провести ревизию сгоревшего оборудования и хотя ущерб был не так велик материально, но выход из строя некоторого оборудования нарушил устоявшийся комфорт проживания в собственном доме. Так я решил обратиться к специалистам в своей области, проконсультироваться и расширить систему защиты.

Исходные данные: дом, 3 фазы (15 кВт на дом), заземление штырем в 3 м длиной, автономная электросистема на базе солнечных батарей



Читать дальше →
Total votes 45: ↑43 and ↓2+41
Comments64

Почему «электронные дневники» до сих пор ненадежны в образовании?

Reading time8 min
Views66K
Добрый день, хабраюзер!


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



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

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

Читать дальше →
Total votes 66: ↑59 and ↓7+52
Comments102

Пулы потоков: ускоряем NGINX в 9 и более раз

Reading time15 min
Views88K
Как известно, для обработки соединений NGINX использует асинхронный событийный подход. Вместо того, чтобы выделять на каждый запрос отдельный поток или процесс (как это делают серверы с традиционной архитектурой), NGINX мультиплексирует обработку множества соединений и запросов в одном рабочем процессе. Для этого применяются сокеты в неблокирующем режиме и такие эффективные методы работы с событиями, как epoll и kqueue.

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

Каждый процесс расходует память и каждое переключение между ними требует дополнительных циклов процессора, а также приводит к вымыванию L-кэшей

У медали есть и обратная сторона. Главной проблемой асинхронного подхода, а лучше даже сказать «врагом» — являются блокирующие операции. И, к сожалению, многие авторы сторонних модулей, не понимая принципов функционирования NGINX, пытаются выполнять блокирующие операции в своих модулях. Такие операции способны полностью убить производительность NGINX и их следует избегать любой ценой.

Но даже в текущей реализации NGINX не всегда возможно избежать блокировок. И для решения данной проблемы в NGINX версии 1.7.11 был представлен новый механизм «пулов потоков». Что это такое и как его применять разберем далее, а для начала познакомимся с нашим врагом в лицо.
Читать дальше →
Total votes 72: ↑71 and ↓1+70
Comments58

Как определить лицо на фотографии с помощью PHP

Reading time3 min
Views40K
Определение лиц используется в соцсетях, фото-редакторах, видеочатах, умной капче, time tracking программах — можно придумать еще множество применений этой функции.
image
Читать дальше →
Total votes 36: ↑26 and ↓10+16
Comments13

Блокировка по access_log, легкий способ прострелить ногу или устранение конкурентов

Reading time3 min
Views29K
Очередной пример, как легко прострелить себе ногу, на этот раз «переусердствовав» при защите сайта.
Имён как всегда не называю, однако история показательна как-таковая, т.е. в качестве примера, как не надо «защищать» свои сервера. Эх говоришь им, говоришь — а все без толку.

Пришлось тут намедни делать «аудит» одного коммерческого проекта… ну очень просили.
Упала посещаемость сайта, не совсем чтобы совсем, но довольно заметно. Смотрели логи, аналитику поисковиков и т.д. и т.п. Все вроде нормально, и кто приходит, тот даже не уходит сразу.
Но не буду ходить вокруг, да около — проанализировав логи банов по IP выяснилась одна закономерность — за короткое время в бан попадало огромное количество IP-адресов. Все поголовно по одной причине — якобы как botsearch. Отротированные логи за последний месяц тоже ужасали своими размерами и даже заглядывать туда не нужно было, и так все ясно. Т.е. случилось следующее: куча клиентов просто не могла попасть на сайт.
На вопрос «что-то меняли где-то с месяц назад?» был получен отрицательный ответ.

Не буду утомлять здесь детективным чтивом, после недолгих поисков — картина маслом. Некий прямой конкурент этого сайта поспособствовал «утечке» клиентов, или вернее и организовал эту «странную непосещаемость».
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments25

Сравнение Security Enhanced NGINX и Hiawatha Web Server при отражении атак 7 уровня (BOTS/SQL/XSS etc.)

Reading time5 min
Views17K
Добрый день.

В завершение «недели NGINX», мы решили рассказать об очень интересной сборке «безопасной» версии NGINX китайской компании Neusoft, о которой не было замечено ни одной статьи на Хабре, а именно — SeNginx. В дополнение к этому, мы также расскажем вам о втором веб сервере, которому не уделяется так много внимания, как Nginx — Hiawatha Web Server, и постараемся сравнить Hiawatha с SeNginx в плане использования их для обеспечения безопасности вашего сайта или web приложения.

image image

Отметим, что за 5 лет существования нашей хостинговой компании нам довелось повидать целый спектр атак различных уровней и типов на сайты и web приложения наших клиентов, а также поработать с London Metropolitan Police в поиске и поимке одного управляющего ботнетом. Сегодня DDoS атаки стали настолько частыми, что только за вчерашний день Arbor в одном из наших датацентров зафиксировал 49 DDoS атак 3/4 уровней мощностью до 20-25 Gbit/s (график 1 и график 2). И, хотя Arbor девайсы и могут при определенной настройке неплохо справляться с атаками 3 и 4 уровня, они практически бесполезны при атаках 7 уровня, целью которых является перегрузка ресурсов сервера, а также поиск уязвимостей в вашем приложении.

Самым бюджетным вариантом отражения атак 7 уровня являются различные варианты с использованием DNS RoundRobin + HaProxy, Nginx, Varnish Cache и т.д., которые либо позволяют рассредоточить атаку между несколькими серверами клиента, либо дают возможность обработать запросы ботов «в лоб» с помощью отдачи кешированной версии страницы. Данный подход, к сожалению, часто требует ручной настройки, постоянного мониторинга и редко эффективен при меняющихся типах атак.

Наглядное представление DNS RoundRobin + Nginx (источник):

image

После длительных поисков нами был найден отличный модуль к NGINX, написанный русскими программистами на Perl в 2012 году и позволяющий фильтровать ботов, которые заходят на ваш сайт в автоматическом режиме — Roboo (статья на Хабре). Модуль показал себя с наилучшей стороны, позволяя фильтровать сотни тысяч запросов от ботов с помощью NGINX с минимальной нагрузкой на сервер.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments12

Как определить дубликаты картинок с помощью PHP

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



Потому рано или поздно встает вопрос автоматизации процесса поиска повторов, и тут мы рассмотрим основные, а также попробуем в деле.
Читать дальше →
Total votes 45: ↑37 and ↓8+29
Comments24

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity