Это небольшой гайд о том, как обеспечить наблюдаемость в вашей событийно-ориентированной облачной системе.
Gar|k @Gariks
Пользователь
Гайд по поиску и устранению утечек памяти в Go сервисах
4 мин
7.5KТуториал
Привет меня зовут Игорь и я профессионально занимаюсь веб разработкой с 2005 года, раньше это называлось "веб-мастер", а сейчас full-stack developer.
На данный момент я tech lead в одной классной команде и иногда мне приходиться писать много текста в confluense, что бы не объяснять всё дважды и заодно приумножить knowledge base компании. Этот гайд мои "заметки на полях" в ходе исследования одного инцидента.
+2
STM32L-DISCOVERY + FDD
3 мин
57KДля того что бы подключить STM32L-DISCOVERY к FDD тебе понадобится 4 провода и 2 джампера.
+16
6 советов для создания сложных AJAX сайтов
4 мин
40KТуториал
Перевод
Все мы знаем множество преимуществ использования AJAX: пользователям не нужно ждать загрузку новой страницы, действия выполняются в фоновом режиме, в результате чего можно обеспечить гораздо более динамичный user experience. Идеи вроде бы просты, но создать сложное AJAX веб приложение достаточно тяжело. Я создал свой блог на основе AJAX, у меня есть несколько советов и я хочу поделиться с вами своим опытом. Надеюсь я помогу вам избавиться от некоторых проблем в будущем!
+21
Как узнать, что ваш PHP сайт был взломан
11 мин
134KПеревод
Сайт моего друга недавно был взломан, на нем была запущена старая версия IP.Board, в которой есть уязвимость локального внедрения кода (local file inclusion). Этот пост не будет посвящен IP.Board или другому php коду, он покажет, как найти потенциально вредоносный php код на ваших серверах. Наконец, покажу пример того, что злоумышленники могут загрузить на взломанный сайт.
Что бы с чего-то начать, я бы хотел поделиться некоторыми записями из журнала доступа (access log) взломанного сайта моего друга.
Необходимо часто проверять журналы доступа на сервере, однако если вы не будете осторожны, URL такие как выше, которые на первый взгляд выглядят безобидно, могут пройти прямо мимо вас.
Два файла выше это загруженные взломщиком скрипты, как они туда попали, большой роли не играет, так как код на любых двух серверах, вероятно, будет различным. Тем не менее, в данном конкретном примере, уязвимость в устаревшей версии IP.Board была использована, и атакующие смогли добавить свои собственные скрипты в директории доступные для записи, такие как пользовательский каталог загрузки и каталог, в котором IP.Board хранит кэшированные изображения темы оформления. Это общий вектор атаки, много людей изменяют права на эти каталоги на 777 или дают им доступ на запись, подробнее об этом чуть позже.
Рассмотрим подробнее приведенные выше строки журнала, ничего не цепляет вас?
Обратите внимание, что в журнале доступа POST запросы, а не GET запросы.
Скорее всего, злоумышленники хотели сделать журнал доступа более неприметным, так как большинство журналов не сохраняют post данные.
Проверьте логи доступа
Что бы с чего-то начать, я бы хотел поделиться некоторыми записями из журнала доступа (access log) взломанного сайта моего друга.
IpreMOVED - - [01/Mar/2013:06:16:48 -0600] "POST /uploads/monthly_10_2012/view.php HTTP/1.1" 200 36 "-" "Mozilla/5.0"
IpreMOVED - - [01/Mar/2013:06:12:58 -0600] "POST /public/style_images/master/profile/blog.php HTTP/1.1" 200 36 "-" "Mozilla/5.0"
Необходимо часто проверять журналы доступа на сервере, однако если вы не будете осторожны, URL такие как выше, которые на первый взгляд выглядят безобидно, могут пройти прямо мимо вас.
Два файла выше это загруженные взломщиком скрипты, как они туда попали, большой роли не играет, так как код на любых двух серверах, вероятно, будет различным. Тем не менее, в данном конкретном примере, уязвимость в устаревшей версии IP.Board была использована, и атакующие смогли добавить свои собственные скрипты в директории доступные для записи, такие как пользовательский каталог загрузки и каталог, в котором IP.Board хранит кэшированные изображения темы оформления. Это общий вектор атаки, много людей изменяют права на эти каталоги на 777 или дают им доступ на запись, подробнее об этом чуть позже.
Рассмотрим подробнее приведенные выше строки журнала, ничего не цепляет вас?
Обратите внимание, что в журнале доступа POST запросы, а не GET запросы.
Скорее всего, злоумышленники хотели сделать журнал доступа более неприметным, так как большинство журналов не сохраняют post данные.
+55
Простой пример использования библиотеки Volley
4 мин
55KПеревод
Я уверен вы, еще не слышали слово «Volley», это библиотека, представленная на Google I/O 2013 Ficus Kirkpatrick.
Она управляет обработкой и кэшированием сетевых запросов, и это экономит драгоценное время разработчиков от написания одного и того же кода сетевого запроса/считывания из кэша снова и снова. И еще одно преимущество, меньше кода, меньше количество ошибок :)
Обычно мы пишем один и тот же код сетевого запроса в AsyncTask, логику обработки ответа от Web API и отображения его в View. Мы должны заботиться об отображении ProgressBar/ProgressDialog внутри OnsourceExecute() и OnPostExecute(). Я знаю, что это не трудная задача, но все же рутинная. Иногда бывает скучно, даже когда определен базовый класс для управления ProgressBar/ProgressDialog и многими другими вещами. Так что теперь можно сказать, Volley может быть мощной альтернативой AsyncTask.
Для чего библиотека Volley?
Volley это библиотека, которая делает сетевые приложения для Android проще и, самое главное, быстрее.
Она управляет обработкой и кэшированием сетевых запросов, и это экономит драгоценное время разработчиков от написания одного и того же кода сетевого запроса/считывания из кэша снова и снова. И еще одно преимущество, меньше кода, меньше количество ошибок :)
Обычно мы пишем один и тот же код сетевого запроса в AsyncTask, логику обработки ответа от Web API и отображения его в View. Мы должны заботиться об отображении ProgressBar/ProgressDialog внутри OnsourceExecute() и OnPostExecute(). Я знаю, что это не трудная задача, но все же рутинная. Иногда бывает скучно, даже когда определен базовый класс для управления ProgressBar/ProgressDialog и многими другими вещами. Так что теперь можно сказать, Volley может быть мощной альтернативой AsyncTask.
+16
HttpRequest — библиотека для простой работы с HTTP протоколом
2 мин
31Khttps://github.com/Garik-/http-request
Очень часто в коде можно встретить такие строки:
Теперь это действительно не важно.
Библиотека Http Request основана на одноименной библиотеке Kevin Sawicki, которая должна быть хорошо известна Android разработчикам, ведь её использует сам GitHub в своем приложении.
Очень часто в коде можно встретить такие строки:
$result = file_get_contents("http://geocode-maps.yandex.ru/1.x/?geocode=".urlencode("Москва"));
$handle = fopen("http://www.example.com/", "rb");
$result = fgets($handle);
- Не важно человеку, что директива allow_url_fopen может быть отключена на сервере.
- Не важно, что на сервере установлена библиотека cURL, которая без проблем скачает 100 МБ файл.
- Не важно, какой ответ вернет сервер, 200, 301, может 404, может 502?
- Не важно, то что сеть не идеальная среда и ответ может придти частично или его вовсе не будет продолжительное время. Скрипт попросту подвиснет в ожидании на неопределенное время или вернет не корректный результат.
try {
$http = HttpRequest::get("http://geocode-maps.yandex.ru/1.x/?format=json",array("geocode"=>$city))->acceptJson();
$json = $http->ok() ? json_decode($http->body()) : null;
} catch (HttpRequestException $e) {
exit($e->getMessage());
}
Теперь это действительно не важно.
Библиотека Http Request основана на одноименной библиотеке Kevin Sawicki, которая должна быть хорошо известна Android разработчикам, ведь её использует сам GitHub в своем приложении.
-2
Мы выпустили diafan.CMS 5.0
3 мин
9.8KРазработка 5-ой версии diafan.CMS стала для нашей компании тяжелым испытанием, так как в достаточно сжатые сроки реализовать огромное количество пожеланий наших пользователей было непросто. Но в план мы уложились и, как должны были, 1 апреля выпустили пятую версию, о чем я с гордостью всем и сообщаю, правда с небольшим опозданием.
Как бы это пафосно не звучало, но мы считаем, что знакомство с нашей CMS будет полезно всем, кто так или иначе касается создания сайтов. Конечно, для разных сайтов есть разные подходящие решения, где-то достаточно ВордПресса, а где-то не обойтись без Битрикса, но мы уверены, что ниша, которую мы пытаемся занять, на рынке CMS есть, и мы там очень хорошо смотримся. Причем, если несколько лет назад мы позиционировались как простая CMS для сайтов-визиток и «даже» небольших магазинов, то сегодня наша CMS позволяет делать вообще почти все, включая серьезные магазины, а среди отзывов пользователей есть восторженные заявления, что мы гораздо лучше большинства конкурентов.
Как бы это пафосно не звучало, но мы считаем, что знакомство с нашей CMS будет полезно всем, кто так или иначе касается создания сайтов. Конечно, для разных сайтов есть разные подходящие решения, где-то достаточно ВордПресса, а где-то не обойтись без Битрикса, но мы уверены, что ниша, которую мы пытаемся занять, на рынке CMS есть, и мы там очень хорошо смотримся. Причем, если несколько лет назад мы позиционировались как простая CMS для сайтов-визиток и «даже» небольших магазинов, то сегодня наша CMS позволяет делать вообще почти все, включая серьезные магазины, а среди отзывов пользователей есть восторженные заявления, что мы гораздо лучше большинства конкурентов.
+1
Изучаем протокол MMP (Mail.ru агент) и пишем альтернативный клиент
4 мин
25KНе для кого не секрет, что «Mail.ru Агент» стал довольно популярным IM проектом. Здесь вам и поддержка ICQ, XMPP, голосовых звонков и даже отправка SMS, только вот компания Mail.ru совсем забыла о разработчиках.
Официальная документация протокола обмена данными Mail.ru Агент описывает версию протокола 1.7 реализованную в 2008 году. На данный момент сервер использует протокол версии 1.24.
Официальная документация протокола обмена данными Mail.ru Агент описывает версию протокола 1.7 реализованную в 2008 году. На данный момент сервер использует протокол версии 1.24.
+32
Информация
- В рейтинге
- Не участвует
- Откуда
- Бобруйск, Могилевская обл., Беларусь
- Дата рождения
- Зарегистрирован
- Активность