Обмен реестрами в финансовых системах

registy

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

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

Пару слов о Content Discovery

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

В информационной безопасности content discovery называют технику поиска скрытых ресурсов, преимущественно в web-приложениях. Впервые я столкнулся с таким явлением несколько лет назад, когда ко мне обратились знакомые и сказали, что у них стали пропадать клиенты. Это была небольшая компания, у них был отдел продаж и маленький одностраничный веб-сайт, где потенциальные клиенты оставляли свой номер телефона. Затем менеджеры отдела продаж перезванивали клиенту и совершали сделку. Так вот, с какого-то момента клиенты, пришедшие на сайт оказывались обработаны конкурентами до того, как им позвонит менеджер. Поначалу подозревали сотрудников, но затем я решил взглянуть на исходный код сайта. Выяснилось, что по урлу /clients (или что-то такое, точно не помню) без всякой аутентификации были доступны клиенты оставившие заявку за несколько часов. Этот урл дергался CRMкой и новые клиенты перекидывались в базу CRM.

На тот момент мне было непонятно, как можно было обнаружить этот путь на сайте, ведь он нигде не фигурировал — ни в sitemap.xml, ни в robots.txt ни где либо ещё. Про content discovery я ничего не знал, поэтому немного подумал и забил(к тому же проблема оказалась решена). Как оказалось есть способы поиска таких скрытых ресурсов. Давайте посмотрим что можно спрятать и как это можно найти.

 

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

Скрипты и песочницы в JVM

Довольно распространенная ситуация, когда приложение требует кастомизации, но это невозможно выполнить одними только настройками, а модификация исходного кода затруднительна или же отсутствует возможность обновления с необходимой частотой. Примером такой проблемы может быть, к примеру, вычисление комиссии по сложным правилам или же формирование кастомного запроса в биллинг на основе профиля абонента и тому подобное. В этом случае можно воспользоваться Java Scripting API (JSR-223) и выразить логику через изменяемые в рантайме скрипты. Более того, при наличии вменяемого DSL или API, полномочия изменения и настройки скриптов можно переложить на админов, аналитиков и тд. В этом посте мы бы хотели рассказать об эволюции одного приложения, которое активно использует скриптинг в своей работе — с чего начинали и к чему это привело.

 

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

Интеграция с внешними сервисами

external service communication

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

Все программные интерфейсы можно разделить на 2 категории — публичные и не такие публичные. К первым относятся API крупных сервисов, таких как Facebook, Twitter и тд. Как правило они удобные, надежные и проработанные. Вторые — это API мелких или средних организаций, сервисов налоговых органов, иногда даже платежных систем и внутренних приложений больших компаний. В данной статье мы собрали советы как интегрироваться с внешними системами и не утратить при этом психическое здоровье.

 

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