Search
Write a publication
Pull to refresh
0
0
Евгений @lafayette

User

Send message

Новые уязвимости доступа к файлам в PHP

Reading time8 min
Views30K
Какой-нибудь год назад все просто с ума сходили от Error-based MySQL, а unserialize казался чем-то сложным и не встречающимся в реальной жизни. Теперь это уже классические техники. Что уж говорить о таких динозаврах как нуль-байт в инклудах, на смену которому пришел file name truncated. Исследователи постоянно что-то раскапывают, придумывают, а тем временем уже выходят новые версии интерпретаторов, движков, а с ними – новые баги разработчиков.
По сути, есть три метода найти уязвимость: смекалка (когда исследователь придумывает какой-нибудь трюк и проверяет, работает ли он на практике), анализ исходного кода и фаззинг. Об одном интересном китайском фаззинге и его развитии с моей стороны я и хочу рассказать.

Список функций и результаты проверки
Читать дальше →

Способ проксирования JPA сущностей для клиента (борьба с lazy initialization)

Reading time2 min
Views5.9K
Недавно, увидев на Хабре пост про борьбу с lazy initialization в Hibernate, я заинтересовался – прочитал сам пост и ждал пока наберется побольше комментариев – не предложит ли кто-нибудь способ, которым данную проблему решили мы. Ничего похожего я не увидел. Способ под катом.
Читать дальше →

Hibernate: использование lazy initialization в разработке клиент-серверного приложения

Reading time3 min
Views52K
При проектировании доменов приложения, разрабатываемого с использованием Hibernate, разработчику необходимо сделать выбор: инициализировать ли свойства домена, соответствующие коллекциям связанных доменов, сразу (FetchType=EAGER) или же делать это только при обращении к ним (FetchType=LAZY). На самом деле в случае, когда предметная область имеет сколь-либо сложную структуру связей между объектами, выбор уже сделан – загружать полбазы ради одного объекта, как это было бы при FetchType=EAGER, мягко говоря, неразумно. Поэтому ленивая инициализация в случае коллекций есть наиболее предпочтительная стратегия инициализации связанных объектов.

Однако, не всё так просто. Ленивая инициализация реализуется за счёт создания прокси-объекта с помощью JDK Dynamic Proxy или библиотеки CGLIB. В обоих случаях проксирование соответствующих get-методов сводится к обращению к сессии Hibernate для получения необходимых данных. Последнее же в свою очередь означает, что обращение к ленивым свойствам объекта может быть осуществлено только при наличии сессии Hibernate. В противном случае, попытка получить свойство объекта приведёт к незабвенному исключению «LazyInitializationException: could not initialize proxy — the owning Session was closed».

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

Обнаружение объектов методом Оцу

Reading time6 min
Views47K
Здравствуйте, уважаемые хабрачитатели и хабракритики. Этот пост я хотел бы посвятить такой актуальной на сегодняшний день теме, как обнаружение объектов на изображениях.
В качестве одного из алгоритмов такого обнаружения рассмотрим выбор порога быстрым и эффективным методом Оцу.
Читать дальше →

Не совсем обычный XMPP-бот на Python: туннелирование

Reading time5 min
Views7.4K
Не так давно была опубликована статья про ICQ на Python, которая меня подтолкнула развить тему, правда в несколько другом направлении. Несколько лет назад у меня были трудности с домашним интернетом: доступ только в локальную сеть, из связи с внешним миром только ICQ и локальный Jabber сервер; никакой другой возможности попасть наружу не было. В результате чего родилась идея туннелировать HTTP трафик в XMPP.

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

Тюнинг nginx

Reading time8 min
Views97K
Статья написана по материалам моего доклада на CodeCamp 2009.

Для многих из нас настает тот долгожданный день, когда аудитория сайта начинает стремительно расти. Каждое утро мы, затая дыхание, смотрим на графики google analitycs и расплываемся в улыбке, когда взят рубеж в очередную тысячу посетителей в день. Как правило, рост посещаемости не совпадает с ростом технической базы и сайт начинает тормозить. Тут в игру вступает сисадмин...

У любого проекта всегда есть что оптимизировать: можно почитать советы по оптимизации на webo.in, установить eaccelerator, memcache, проиндексировать поисковые поля в базе данных. Я предполагаю, что все это уже проделано, а сайт по прежнему тормозит.

Пришло время оптимизировать nginx...

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

Знакомство с OCR библиотекой tessnet2 (язык C#)

Reading time5 min
Views61K
example
Буквально на днях у меня появилась необходимость распознать простой текст на картинке и совсем не было желания реализовывать свой алгоритм, т.к. знаком с теорией и знаю, что это не такое простое дело, поэтому сразу решил изучить сначала рынок готовых библиотек. Буквально несколько запросов в гугл и я понял, что ничего более подходящего мне как библиотека tessnet2 невозможно найти. Постоянно читаю хабр и знаю, что тут есть уйма статей посвященных теории OCR и очень удивился, что нет ничего о библиотеке tessnet2.
Читать дальше →

Полулегальное воровство печеньками

Level of difficultyEasy
Reading time5 min
Views56K
Часть хабралюдей честные и бескорыстные и привлекают их всякие техническия штучкэ. Но кое-кто кое-где у нас порой и не столь бескорыстен. Честно жить не хочет. Я расскажу вам о том, как можно по сути воровать, но при этом не выходя за рамки уголовного кодекса. Эдак с $15,000,000.
Читать дальше →

Пишем парсер на Java + MySQL

Reading time15 min
Views44K
Недавно пробегал на Хабре пост про базу доменных имен с электронной почтой. Решил написать парсер, чтоб благополучно слить всю эту базу. Но так как очень быстро сервис загнулся в силу хабраэффекта (а может админы пофиксили, черт его знает), я пошел дальше и нашел просто базу доменов в plaintext'е в зоне .RU. Решил ее пропарсить с помощью whois на nic.ru. Но на последнем действует скрипт, благополучно притормаживая слив базы с одного ip адреса. Выход — использование proxy листа. И, будучи благополучно задушенным жабой покупать прокси листы, я решил написать на Java два скрипта:
1. Парсит samair.ru/proxy и сливает в mysql прокси лист.
2. Проходит по базе и проверяет timeout полученных проксей.

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

‘Hello World’ tutorial — Ваше первое приложение на Play framework (Часть 1)

Reading time5 min
Views21K
Это очень поверхностное руководство, которое только познакомит с базовым функционалом Play framework на примере создания приложения ‘Hello World’.

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

‘Hello World’ tutorial — Ваше первое приложение на Play framework (Часть 2)

Reading time5 min
Views15K
Это очень поверхностное руководство, которое только познакомит с базовым функционалом Play framework на примере создания приложения ‘Hello World’.

(Часть 1)
Читать дальше →

Дыра на free-lance.ru

Reading time1 min
Views4.8K
Находка

Всё начиналось как обычно. Очередной вечер в поисках маленького проекта на 2-3 часа. Оставляю комментарий к проекту и жду ответа. Обновляю страницу, начинает тормозить интернет, нервничаю, раз 5 подряд жму F5. И что же я вижу:


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

Тонкости регулярных выражений. Часть 1: метасимволы внутри и вне символьных классов

Reading time5 min
Views17K

Вместо вступления



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

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

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

Mikrotik Router OS, Ищем свой сервер в чужой сети. Или как не платить большие деньги

Reading time7 min
Views22K

Mikrotik Router OS, Ищем свой сервер в чужой сети. Или как не платить большие деньги



Все мы не раз слышали о грандиозной поддержке малого бизнеса и частного предпринимательства в нашей стране. Пока ты физическое лицо, у тебя нет никаких проблем. Но как только ты собрался с мыслями и решил открыть свое дело, ты моментально попадаешь на деньги (конские проценты в банках, налоги, отчисления в ПФР, поборы, штрафы, инфляция, и прочая вата). Особенно отличились в этом плане провайдеры, если к простому домашнему пользователю требования минимальны, то к частным предпринимателям и организациям подход особенный. А именно: если ты арендовал нежилое помещение для работы, это означает что ты дойная корова и должен платить кучу денег провайдеру. Да, конечно очень хорошо, если вам удалось договорится с провайдером и составить договор на физическое лицо, ну или скажем недалеко живет ваш знакомый который согласен поставить wifi в форточку. Но если данные варианты не прокатывают, есть еще один способ не платить провайдеру кучу денег. :)

Идея заключается в том, что в наше время не сложно найти провайдера с внутренней локальной сетью 10.0.0.0/255.0.0.0 или 192.168.0.0/255.255.0.0 и в ней организовать две точки (Физическое лицо с дешевым, безлимитным интернетом будет Сервером) (Организация с дорогим помегабайтным интернетом будет Клиентом) между ними поднимаем VPN.
Читать дальше →

Mikrotik Router OS, скрипт для динамического деления скорости (Версия 2)

Reading time13 min
Views21K

Mikrotik Router OS, скрипт для динамического деления скорости (Версия 2)



Это вторая версия, первая лежит тут: тут.

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

Исходя из прошлого опыта, был написан совершенно новый скрипт исключающий недостатки прошлого и доработанный для текущих потребностей.

В новой версии стало все значительно проще в плане расположения пользователей, теперь не имеет значения, как подключился пользователь, главное, что у него есть ip адрес и этого нам достаточно.
Читать дальше →

Учимся готовить: Spring 3 MVC + Spring Security + Hibernate

Reading time12 min
Views355K
Добрый день! Меня зовут Антон Щастный.

Это моя очередная статья, посвящённая разработке веб приложений на Java. Хочу предложить вам сделать небольшую систему учёта клиентов, написанную с использованием фреймворка Spring и библиотеки Hibernate.

Что будет в приложении:


Будет простой менеджер контактов, позволяющий добавлять в базу новые записи, просматривать имеющиеся, удалять ненужные. Сведения будут храниться в базе данных. Доступ к приложению – через веб, с аутентификацией и авторизацией пользователей.

Что будем использовать:


  • веб фреймворк Spring MVC,
  • фреймворк Spring Security,
  • ORM библиотеку Hibernate,
  • MySQL в качестве СУБД.

Инфраструктура:
  • редактор SpringSource Tool Suite,
  • сборщик проектов Maven,
  • система логгирования Log4j,
  • постоянное подключение к интернету.


В моей предыдущей статье о Spring MVC был упущен ряд моментов по использованию аннотаций в Java-коде и применению Maven для сборки проекта. В данной статье я попытался исправить упущение.

Цель статьи – показать начинающим веб разработчикам совместное использование различных технологий платформы Java.

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

Выбор VPS в Германии и установка на него Archlinux

Reading time3 min
Views38K

Задача и выбор площадки


Задача: выбрать виртуальный сервер на стабильной немецкой площадке, с недорогим трафиком и ценой до 20 евро в месяц и установить archlinux.

VPS

Поиск по хабру дал несколько полезных статей и еще один ресурс от которых можно оттолкнуться.
В итоге выбор пал на трех претендентов: server4you.net, hetzner.de, hosteurope.de.
Читать дальше →

Знакомимся с OpenGL

Reading time8 min
Views300K

OpenGL


Знакомство с OpenGL нужно начать с того, что OpenGL — это спецификация. Т.е. OpenGL лишь определяет набор обязательных возможностей. Реализация же зависит от конкретной платформы.
OpenGL является кроссплатформенным, независимым от языка программирования API для работы с графикой. OpenGL — низкоуровневый API, поэтому для работы с ним неплохо иметь некоторое представление о графике в целом и знать основы линейной алгебры.
Читать дальше →

Пишем свой первый Windows-драйвер

Reading time5 min
Views136K
Итак, после моей предыдущей статьи я понял что тема про программирование драйверов Windows интересна хабровчанам, поэтому продолжу. В этой статье я решил разобрать простую программу-драйвер, которая делает только то, что пишет отладочное сообщение «Hello world!» при старте драйвера и «Goodbye!» при завершении, а также опишу те средства разработки, которые нам понадобятся для того, чтобы собрать и запустить драйвер.

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

Синтаксис объявления указателей на функции в С++

Reading time1 min
Views32K
Когда я только начинал использовать С++, то всё время забывал синтаксис определения указателей на функции и особенно указателей на функции члены.

Позже узнал об одном небольшом lifehack'e, который помог мне избавиться от того что-бы держать в голове синтаксис определения указателей на ф-ции. Правда чуть позже этот всё само как-то осело у меня в голове и даже стало очевидно.

На днях показывал этот lifehack одному программисту и решил поделиться им здесь.
Читать дальше →

Information

Rating
Does not participate
Location
Великий Новгород (Новгород), Новгородская обл., Россия
Date of birth
Registered
Activity