Рубрика «curl» - 3

После публикации на Хабре статьи Артёма Осипова "Push уведомления в Android с помощью Firebase Cloud Messaging для начинающих" возник ряд вопросов, которые удалось решить.

Удалось добиться отправки Push-уведомления с вибрацией и со своим звуком + уведомление в статус баре имеет большую иконку и рядом вмещается весь текст. И неважно активно приложение или висит в фоне — при клике на уведомление Main Activity всегда обновляется и несет в себе параметры из уведомления.

Итак, в layout activity_mail.xml добавим два TextView: один для заголовка уведомления и один для текста.
Читать полностью »

Мой URL — это не ваш URL - 1

Когда давным-давно в 1996 году я приступил к работе над программой httpget, предшественницей проекта Curl, я написал свой первый синтаксический анализатор URL. Как раз тогда этот универсальный адрес получил название URL: Uniform Resource Locator (единый указатель ресурсов). Его спецификация была опубликована IETF в 1994 году. Аббревиатура «URL» была затем использована как источник вдохновения для названия инструмента и проекта Curl.

Термин «URL» был позднее изменён; его стали называть URI (Uniform Resource Identifier — единый идентификатор ресурсов), согласно спецификации, опубликованной в 2005 году, однако основное сохранилось: синтаксис для строки, задающей онлайн-ресурс и указывающей протокол для получения этого ресурса. Мы требуем, чтобы curl принимал указатели URL, как определено данной спецификацией RFC 3986. Ниже я расскажу, почему на самом деле это не совсем так.
Читать полностью »

Elasticsearch — поисковый движок с json rest api, использующий Lucene и написанный на Java. Описание всех преимуществ этого движка доступно на официальном сайте. Далее по тексту будем называть Elasticsearch как ES.
Подобные движки используются при сложном поиске по базе документов. Например, поиск с учетом морфологии языка или поиск по geo координатам.
В этой статье я расскажу про основы ES на примере индексации постов блога. Покажу как фильтровать, сортировать и искать документы.Читать полностью »

В системе дистанционного надзора (СДН), обзор которой был сделан в предыдущей статье, для управления медиапотоками используется медиасервер Kurento, позволяющий записывать потоки, где каждый поток — это отдельный файл. Проблема заключается в том, что при просмотре протокола экзамена нужно воспроизводить три потока одновременно с синхронизацией потоков по времени (веб-камера испытуемого со звуком, веб-камера проктора со звуком и рабочий стол испытуемого), причем на протяжении всего экзамена каждый поток может быть разбит на несколько фрагментов. Эта статья о том, как удалось решить данную проблему, а также организовать сохранение видеозаписей на WebDAV сервер всего одним bash-сценарием.

Воспроизведение видеоархива СДН
Читать полностью »

На создание данной статьи я был вдохновлен публикацией «Получение участников сообщества vk.com за считанные секунды». Моя статья написана новичком и отражает опыт решения одной задачи. Основная цель написания этой статьи для меня — собрать мнения, отзывы и критику примененного подхода от более опытных коллег. Кроме того, надеюсь, что кому-то приведенная здесь информация будет полезна.

Не так давно в одном из тестовых задания на вакансию младшего php-программиста мне попалась простая, но интересная для меня задача.

«Сделайте скрипт на php, который возвращает список id пользователей «ВКонтакте», разделенный символами перевода строки, которые являются мужчинами старше 25 лет и состоят в группе vk.com/habr».
Читать полностью »

Здравствуйте, читатели!
Недавно в компании, в которой я работаю, было принято решение о переходе на VoIP-телефонию, чтобы связать наконец-то наши многочисленные офисы в единую телефонную сеть. В качестве SIP-сервера был выбран очень интересный продукт Communigate Pro. Долго определялись с абонентскими устройствами, одним из основных критериев, при выборе ТА, было наличие встроенного гигабитного свитча. В итоге выбор пал на телефонные аппараты (далее ТА) ESCENE GS330-PEN. Все бы ничего, но произошло страшное — подвел поставщик, поэтому внедрение сервиса перенеслось почти на пол года. Когда партия телефонов наконец была получена, нам был установлен жесткий дедлайн. Тут-то и возник вопрос: как быстро сконфигурировать и расставить на рабочих местах 80 ТА. Под катом вас ожидает несколько скриптов и алгоритм действий Читать полностью »

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

Итак, у вас есть небольшой проект. Обычно у проекта есть некоторые характеристики, которые можно измерить. Помимо измерения часто бывает полезно посмотреть изменение характеристики за некоторое время. Это может помочь выявить проблемы на начальной стадии. Например, наблюдая за остатком свободного места на сервере можно прогрозировать аварийную остановку сервисов. Аналогично можно мониторить другие ресурсы — наличие свободной памяти, загрузку процессоров.

Простой сбор статистики используя Counter
(попробуйте догадаться, что это за график — ответ находится в конце статьи)

Читать полностью »

Разработчик с ником fin1te пишет безопасную обертку над curl, которая позволяет защититься от SSRF-атак, и в связи с этим проводит контест: если вы сможете скачать файл btc.txt, который расположен на демо-сервере SafeCurl safecurl.fin1te.net и доступен только с source IP 127.0.0.1 и 37.48.90.196 (внешнего IP сервера), то вы получите доступ к кошельку, в котором находится B⃦0.25.

Уже совершено 3 успешных взлома:

  • @zoczus обошел защиту, зайдя по http://0.0.0.0/btc.txt
  • @47696d6569 и ryanc выполнили DNS rebinding, что позволило им загрузить файл с другого IP адреса, уже после прохождения валидации
  • @shDaniell использовал уязвимость в парсинге URI, скачав файл ссылкой вида http://user:pass@safecurl.fin1te.net?@google.com/

Читать полностью »

Во время разработки под мобильные устройства стала проблема наблюдать и сравнивать несколько характеристик производительности и параметров разных устройств. (iPad/Samasung galaxy note 10.1/Nexus и тп.)
Можно было бы просто выводить логи и записывать их, потом свести их и посмотреть, но хочется, чтобы информация с устройств поступала сразу после отладки в единую таблицу, да и устройства находятся не все у разработчиков на руках.

Единственным решением приходящим на ум стало сделать небольшой сервис на flask/bottle, но придется еще поднять хранилище данных. Сказать честно, даже использование облачных решений на Azure/Heroku/AWS это небольшая кучка дополнительных проблем для такой простой задачи. Пароли, пути, зависимости и тп. вещи. Нам же надо просто одну небольшую таблицу с несколькими параметрами, которые поступают с устройств. И все это на время разработки, а не на продуктивное использование для тысяч пользователей.

Я постоянно записываю в свою базу знаний в Evernote различные хаки для повседневных задач. И там нашел вырезку с кода из какого то open source, где идет обращение с формой Google Docs через post запросы. И понеслось.
Читать полностью »

Хочу поделиться решением одной нетривиальной задачи. Было необходимо организовать удобный доступ к беспроводной сети в офисе организации. Сеть предоставляет доступ только к public internet, с корпоративной сетью ничто не связывает — полностью изолированная система. Единственный общий компонент — пользователи. Для упрощения процесса решено аутентификацию делать на уровне Layer 3 — то есть сеть открытая, после подключения надо вводить пароль для доступа к интернету (Cisco WLC Web Auth).
В принципе все просто, заводятся учетные записи на каждого пользователя, и все готово. Но, ввиду дефицита хелпдеск персонала, заниматься созданием логинов и, тем более, выдачей паролей персоналу было некому. Была поставлена задача использовать один из существующих источников аутентификации, что в стандартной ситуации сделать достаточно просто: например для MS Active Directory можно использовать NPS в качестве радиус сервера, на LDAP же можно подключаться напрямую).
В нашем случае было и то, и другое (AD для сети и LDAP для доступа к корпоративному интранету ), но из WiFi сегмента туда не было вообще никакого доступа. Максимум что нам смогли дать, это тестовые AD акаунт и акаунт для интранета. Сели, подумали… и вот что придумали
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js